입력한 문자열들을 기준에 따라 정렬하는 문제.
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)를 통해서 먼저 길이순으로 정렬이 되게 설정하였고, 만약 길이가 같을 때는
오름차순(사전순)으로 정렬이 되게 설정하였다.
'알고리즘' 카테고리의 다른 글
[python] 백준 1914번 - 하노이 탑 (0) | 2024.07.13 |
---|---|
[python] 백준 28278번 - 스택 2 (0) | 2024.07.12 |
[python] 백준 4779번 - 칸토어 집합 (0) | 2024.07.09 |
[python] 백준 9625번 - BABBA (0) | 2024.07.08 |
[python] 백준 14425번 - 문자열 집합 (0) | 2024.07.07 |