불가능한 경우는 홀수번 나오는 문자가 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])
'practivceAlgorithm > 백준' 카테고리의 다른 글
[백준][Python] 19238 스타트택시 (0) | 2021.10.02 |
---|---|
[백준][Python] 3055 탈출 (0) | 2021.10.01 |
[백준][Python] 17142 연구소 3 (0) | 2021.09.30 |
[백준][Python] 1120 문자열 (0) | 2021.09.30 |
[백준][Python] 1238 파티 : 역방향 그래프로 돌아오는 길을 찾자 (0) | 2021.09.30 |