[ 2023-07-04 ⛴️ TIL ]

Burkey·2023년 7월 4일
0

TIL

목록 보기
113/157

백준 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")
profile
스탯 올리는 중

0개의 댓글