practivceAlgorithm/백준

[백준][Python] 1213 펠린드롬 만들기

findTheValue 2021. 10. 1. 07:31

불가능한 경우는 홀수번 나오는 문자가 2개 이상일 경우다.

이 경우를 제외하고 각 문자를 배열에 넣어 정렬 후 뒤집은 배열과 합치는 방법으로 펠린드롬을 만들 수 있다.

 

import sys
input = sys.stdin.readline
from collections import defaultdict

name = input().rstrip()
count = defaultdict(int)
for char in name:
    count[char] += 1
char_set = []
flag = 0
mid = ''
for char in count:
    if count[char] % 2:
        if flag:
            print("I'm Sorry Hansoo")
            exit()
        else:
            mid = char
            flag = 1
            for _ in range(count[char] // 2):
                char_set.append(char)
    else:
        for _ in range(count[char] // 2):
            char_set.append(char)
char_set.sort()
answer = ''.join(char_set)
print(answer + mid + answer[::-1])