PS/BOJ

[Python] 1213번 팰린드롬 만들기

s_omi 2024. 7. 16. 09:53

✏️ 문제

 

문제 파악

일단 팰린드롬이 되려면 

  1. 모든 알파벳이 짝수 개일 때
  2. 하나의 알파벳만 홀수 개고 나머지는 짝수 개일 때

위의 조건이 성립하지 않으면 "sorry ~" 출력

 

 

 

알고리즘

  • 그리디 알고리즘
  • 구현
  • 문자열

 

 

코드

name = input() 
count = {}
keys = sorted(list(set(name)))
odd = []
result = ''

for key in keys:
  cnt = name.count(key)
  count[key] = cnt
  if cnt % 2 != 0:
    odd.append(key)

if len(odd) > 1:
  print("I'm Sorry Hansoo")
else:
  for key in keys:
    result += key * (count[key] // 2)

  if odd != []: 
    result += odd[0] + result[::-1]
  else:
    result += result[::-1]

  print(result)

 

 

'PS > BOJ' 카테고리의 다른 글

[Python] 1417번 국회의원 선거  (0) 2024.07.17
[Python] 2847번 게임을 만든 동준이  (0) 2024.07.16
[Python] 14916번 거스름돈  (0) 2024.07.16
[Python] 1049번 기타줄  (0) 2024.07.15
[Python] 1946번 신입 사원  (0) 2024.07.15