본문 바로가기
알고리즘

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

by 이재현9999 2024. 5. 5.

입력한 문자열들을 기준에 따라 정렬하는 문제.

 

N = int(input())
words = [0] * N

for i in range(N):
    words[i] = input()

words = list(set(words))
words.sort(key = lambda  x : (len(x), x))

for j in range(len(words)):
    print(words[j])

sort() 함수는 기본적으로 리스트의 요소들을 오름차순으로 정렬 해주는 기능이 있다.

하지만 sort() 함수는 다양한 기준으로도 정렬 할 수 있다.

 

list.sort(reverse = True)를 하면 리스트를 내림차순 정렬이 가능하다. (reverse = False가 디폴트이다.)

또한 위의 코드처럼 key를 사용해 새로운 기준을 설정할 수 있다.

 

lst = ['qq', 'w', 'eeeee', 'rrr']
lst.sort(key = len)
print(lst)

key = len을 통해서 문자열의 길이순으로 정렬할 수 있다.

 

또한 lamda 매개변수 : 표현식을 통해서도 특정 조건의 기준을 위 코드처럼 만들 수 있다.

위 코드에서는 len(x)를 통해서 먼저 길이순으로 정렬이 되게 설정하였고, 만약 길이가 같을 때는

오름차순(사전순)으로 정렬이 되게 설정하였다.