백준 1213번 파이썬
import sys
input = sys.stdin.readline
S = input().strip()
S = sorted(S)
# 사전 순으로 정렬해야 하기에 sort()시킴
first = ''
last = ''
check = True
obj = {}
for s in S :
if (s in obj):
obj[s] += 1
else:
obj[s] = 1
# 문자의 갯수를 딕셔너리로 체크
for key, val in obj.items():
if (val > 1):
while (obj[key] > 1):
# 홀수일 경우가 있어 1이상으로 break문 설정
first += key
obj[key] -= 2
# 문자의 갯수가 2의 배수로 존재하면 결과 값에 저장
last = first[::-1] # 앞의 문자열을 뒤집어 준다.
for key, val in obj.items():
if (val == 1) and check :
# 문자열 S의 길이가 홀수일 경우 한번만 해당 로직을 돌도록 구현
first += key
check = False
elif (val == 1) and (check == False) :
first = ''
if (len(first) > 0) :
print(first + last)
else:
print("I'm Sorry Hansoo")