백준 문자열 알고리즘: 1213 팰린드롬만들기 (다시 도전해보기)

코린이서현이·2024년 1월 16일
0

🛎️ 1213번

풀긴 했는 데 코드가 너무 지저분해서 맘에 안든다...

정답코드

x1 = input()
x1 = list(str(x1))
x1_duplicate_remove = list(set(x1))
x1_duplicate_remove = sorted(x1_duplicate_remove,reverse=True)
x1_list = []
e = 0

for i in range(len(x1_duplicate_remove)):
    temp = []
    temp.append(x1_duplicate_remove[i])
    temp.append(x1.count(x1_duplicate_remove[i]))
    d = x1.count(x1_duplicate_remove[i])
    if d % 2 == 1:
        e += 1
    x1_list.append(temp)

str = []
if e > 1 :
    print("I'm Sorry Hansoo")
else:
    for i in x1_list:
        if int(i[1]) % 2 == 0:
            for j in range(i[1]//2):
                str.append(i[0])
                str.insert(0,i[0])
        else:
            for j in range(i[1]//2):
                str.append(i[0])
                str.insert(0,i[0])
            str.insert(len(str)//2,i[0])
    print(''.join(str))

기억하고 싶은 것

파이썬에서 중복없애기 set -> list

x1 = list(str(x1))
x1_duplicate_remove = list(set(x1))
profile
24년도까지 프로젝트 두개를 마치고 25년에는 개발 팀장을 할 수 있는 실력이 되자!

0개의 댓글