반응형
문제
https://www.acmicpc.net/problem/1181
풀이
n = int(input())
data = []
for i in range(n):
data.append(input())
data = set(data)
data = list(data)
data.sort(key = lambda x : (len(x), x))
for i in data:
print(i)
이번 문제는 문자열들이 주어졌을때
1. 중복을 제거한다.
2. 길이순으로 정렬한다.
3. 길이가 같다면 사전순으로 정렬한다.
위 과정을 거치고 출력을 해야한다.
1. 중복 제거
data = set(data)
data = list(data)
list를 set으로 바꾸고 list로 바꾸어 중복을 제거하였다.
2. 정렬
data.sort(key = lambda x : (len(x), x))
sort에 람다함수를 넣어 정렬 기준을 변경해주었다.
x : (len(x), x)
에서 len(x)
는 길이순으로 정렬하는 코드이고, x
는 길이가 같다면 사전순으로 정렬하는 코드이다.
반응형
'Programming > 알고리즘' 카테고리의 다른 글
[백준 / Python] 28353번 고양이 카페 (2) | 2023.07.22 |
---|---|
[백준 / Python] 14912번 숫자 빈도수 (0) | 2023.07.17 |
[백준 / Python] 2941번 크로아티아 알파벳 (1) | 2023.07.02 |
[백준 / Python] 11399번 ATM (1) | 2023.05.27 |
[백준 / Python] 1026번 보물 (0) | 2023.05.12 |
댓글