Coding Test/Python
백준 1213
dohem
2023. 6. 20. 23:40
https://www.acmicpc.net/problem/1213
1213번: 팰린드롬 만들기
첫째 줄에 문제의 정답을 출력한다. 만약 불가능할 때는 "I'm Sorry Hansoo"를 출력한다. 정답이 여러 개일 경우에는 사전순으로 앞서는 것을 출력한다.
www.acmicpc.net
풀이
alpha = list(input())
alpha.sort(reverse=True)
unique_alpha = list(set(alpha))
unique_alpha.sort(reverse=True)
odd_cnt = 0
odd_alpha = ''
final_str = ''
for a in unique_alpha:
if alpha.count(a)%2 ==1: #홀수면
odd_cnt +=1 #odd_cnt 저장
odd_alpha = a #해당 알파벳 저장
final_str =a #최종 문자에 해당 알파벳 한개 저장
if odd_cnt >1:
print("I","'",'m Sorry Hansoo', sep = '')
else:
for a in unique_alpha:
if a ==odd_alpha:
for _ in range((alpha.count(a)-1)//2):
final_str = a+final_str+a
else:
for _ in range(alpha.count(a)//2):
final_str = a+final_str+a
print(final_str)
참고
1) 리스트를 유니크한값으로 된 리스트로 만드는 법
original_list = [1, 2, 2, 3, 3, 4, 5, 5]
unique_list = list(set(original_list))
print(unique_list)
[1, 2, 3, 4, 5]
2) 리스트 내림차순(디폴트는 오름차순)
my_list = [3, 1, 4, 2, 5]
my_list.sort(reverse=True)
print(my_list)
[5, 4, 3, 2, 1]
3) 리스트 요소 삭제
my_list = [1, 2, 3, 4, 5]
value_to_remove = 3
my_list.remove(value_to_remove)
print(my_list)
[1, 2, 4, 5]
4) 리스트 맨뒤에 요소 추가
my_list = [1, 2, 3]
new_element = 4
my_list.append(new_element)
print(my_list)
[1, 2, 3, 4]
5) 리스트 맨앞에 요소 추가
my_list = [2, 3, 4]
new_element = 1
my_list.insert(0, new_element)
print(my_list)
[1, 2, 3, 4]
6) 리스트에 있는 요소를 문자로 합치기
my_list = ['Hello', 'World', '!']
result = ''.join(my_list)
print(result)
HelloWorld!
7) 파이썬 문자열끼리 합칠 때 공백 없애는 법
print('a', 'b', 'c', sep='')
abc