[백준]1181번 단어 정렬 - 정렬
SW개발/코딩테스트

[백준]1181번 단어 정렬 - 정렬

문제 설명

 

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