import sys
n_input = sys.stdin.readline
dic = {}
s = n_input().rstrip()
# 문자의 빈도수를 확인합니다.
for key in s:
# [i]대신 .get(i) 사용하는 이유는 특정 값이 딕셔너리에 존재하지
# 않을 경우에도 오류 없이 값을 가져올 수 있습니다.
if dic.get(key):
dic[key] += 1
else:
dic[key] = 1
center = ""
for key, count in dic.items():
# 홀수 빈도수를 가진 문자를 찾고,
# 이 중에서 중앙에 위치할 문자를 결정하는 역할을 합니다.
if count % 2 == 1:
# center에 문자가 할당되어 있다는 것은 홀수 문자가 두 종류 이상라는 의미입니다.
# 팰린드롬을 만들 수 없으므로 "I'm Sorry Hansoo"를 출력하고 프로그램을 종료합니다.
if center != '':
print("I'm Sorry Hansoo")
exit(0)
center = key
answer = ""
for key, count in sorted(dic.items()):
answer += key * (count // 2) # 문자열을 절반만 넣습니다.
print(answer + center + answer[::-1]) # 양쪽에 붙여 팰린드롬수를 구현합니다.
'코딩 연습 > 백준 코드' 카테고리의 다른 글
폴리오미노-1343.py (0) | 2023.10.18 |
---|---|
팰린드롬수-1259.py (0) | 2023.10.18 |
제로-10773.py (0) | 2023.10.18 |
접미사 배열-11656.py (0) | 2023.10.18 |
빙고-2578.py (0) | 2023.10.18 |