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

+ Recent posts