문제
https://www.acmicpc.net/problem/1213
풀이
from collections import Counter
ss = list(input())
dic = Counter(ss) # 개수 세주기
cnt=1
answer=[]
one = ''
for d in dic:
for i in range(dic[d]//2): # 반만큼 answer에 더하기
answer.append(d)
if dic[d]%2!=0: # 홀수일경우
if cnt==2: # 홀수인게 한개가 넘을경우
print("I'm Sorry Hansoo") # 실패
break
else:
cnt+=1 # 홀수가 하나일경우
one=d # 홀수 값 저장
else:
answer.sort() # 사전순으로 정렬해주기
print('%s%s%s'%(''.join(answer),one,''.join(answer[::-1]))) # 정렬된값 + 홀수 값 + 정렬 역순 값
순열을 구해서 찾으니 시간초과가 났다.
사전순으로 정렬된 값 + 한개만 있는 문자열 + 사전순으로 정렬된 값의 역순
을 구해주었다.
'코딩테스트 > Python' 카테고리의 다른 글
[Python] 백준 #3986 - 좋은 단어 (0) | 2022.05.15 |
---|---|
[Python] 백준 #1940 - 주몽 (0) | 2022.05.15 |
[Python] 백준 #1629 - 곱셈 (0) | 2022.05.14 |
[Python] 백준 #9375 - 패션왕 신해빈 (0) | 2022.05.14 |
[Python] 백준 #1620 - 나는야 포켓몬 마스터 이다솜 (0) | 2022.05.14 |