https://www.acmicpc.net/problem/1213
from collections import Counter
# 입력 문자열을 리스트로 변환
string = list(input().rstrip())
# 문자열 정렬
string.sort()
# 문자별 개수를 세기
counter = Counter(string)
# 팰린드롬 생성을 위한 준비
front_part = [] # 팰린드롬의 앞부분
middle_part = [] # 팰린드롬 중앙의 문자 (홀수 개인 문자)
for char, count in counter.items():
if count % 2 == 1:
middle_part.append(char)
front_part.extend([char] * (count // 2))
# 팰린드롬을 만들 수 없는 조건 확인
if len(middle_part) > 1:
print("I'm Sorry Hansoo")
else:
# 팰린드롬 생성
palindrome = front_part + middle_part + front_part[::-1]
print(''.join(palindrome))
'알고리즘 문제풀이' 카테고리의 다른 글
수열의 합[백준 1024] (0) | 2024.05.19 |
---|---|
대지[백준 9063] (0) | 2024.05.19 |
부분합[백준 1806] (0) | 2024.05.17 |
경고[백준 3029] (0) | 2024.05.14 |
토너먼트[백준 1057] (0) | 2024.05.13 |