-문제: https://www.acmicpc.net/problem/1213
1213번: 팰린드롬 만들기
첫째 줄에 문제의 정답을 출력한다. 만약 불가능할 때는 "I'm Sorry Hansoo"를 출력한다. 정답이 여러 개일 경우에는 사전순으로 앞서는 것을 출력한다.
www.acmicpc.net
-정답풀이:
알파벳에 해당하는 인덱스는 ord(name)-65하면 a가 0부터 시작한다.
odd_alpha는 갯수가 홀수개인 알파벳들 모아놓은 것
인덱스+65를 chr한 값을 odd_alpha(문자열)에 더한다
alpha에는 갯수가 짝수개인 알파벳들이 들어가므로 인덱스+65인 문자값을 전체갯수//2만큼 더해주면 된다
14,15번은 내가 생각했던 부분
18번은 odd인 것들은 가운데 놔두고, alpha에 해당하는 문자들을 왼쪽에서는 그대로 나열하고, 오른쪽 alpha는 거꾸로 출력해준다
names=input()
name_cnt=[0 for _ in range(26)]
for name in names:
name_cnt[ord(name)-65]+=1
cnt=0
odd_alpha=''
alpha=''
for i in range(26):
if name_cnt[i]%2 ==1:
cnt+=1
odd_alpha +=chr(i+65)
alpha +=chr(i+65)*(name_cnt[i]//2)
#알파벳 갯수 홀수인 수가 2개 이상이면 팰린드롬 못 만듦
if cnt >=2:
print("I'm Sorry Hansoo")
#갯수 홀수인 수 1개이하면 팰린드롬 만들 수 있음
else:
print(alpha+odd_alpha+alpha[::-1])
-틀린풀이:
알파벳 개수가 홀수인 수가 2개 이상이면 팰린드롬이 안된다는 아이디어는 맞았는데 구현이 어려워서 팰린드롬 출력을 못했다
'백준 > Greedy' 카테고리의 다른 글
[코딩테스트] 백준 15903번: 카드 합체 놀이 (0) | 2022.02.05 |
---|---|
[코딩테스트] 백준 11497번: 통나무 건너뛰기 (0) | 2022.02.05 |
[코딩테스트] 백준 3109번: 빵집 (0) | 2022.02.04 |
[코딩테스트] 백준 1700번: 멀티탭 스케줄링(어려웠던 문제) (0) | 2022.02.04 |
[코딩테스트] 백준 2720번: 세탁소 사장 동혁 (0) | 2022.02.03 |