n = int(input())
a = []
b = []
for i in range(n):
a.append(input())
a.sort(key=lambda x:(len(x), x))
for i in a:
if i not in b:
b.append(i)
for j in range(len(b)):
print(b[j])
코드 설명
우선 a 리스트에 입력 문자들을 전부 할당한다. 그 후 sort() 함수를 이용하여 정렬하는데 첫 번째 기준은 문자열의 길이이고, 두 번째 기준은 오름차순으로 정렬한다. 또한, 중복을 제거하기 위하여 빈 리스트를 활용한다. a 리스트의 요소들을 반복문으로 돌면서 b 리스트에 복사하는데 중복인 요소가 있을 경우는 제외시킨다. 그 후 b 리스트를 출력시키면 완료된다.
Point : 정렬을 하기 위해 key 값을 두개로 이용하는 것, 중복된 요소를 제거하기 위해 빈 리스트를 활용하는 것이 중요하다.
728x90
'SW개발 > 코딩테스트' 카테고리의 다른 글
[백준]11047번 동전 0 - 그리디 (1) | 2020.12.27 |
---|---|
[백준]10814번 나이순 정렬 - 정렬 (0) | 2020.12.06 |
[백준]11650번 & 11651번 좌표 정렬하기 1, 2 - 정렬 (0) | 2020.12.04 |
[백준]1427번 소트인사이드 - 정렬 (0) | 2020.12.03 |
[백준]2108번 통계학 - 정렬 (0) | 2020.12.02 |