https://www.acmicpc.net/problem/1181
1181번: 단어 정렬
첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.
www.acmicpc.net
<내 코드>
- 문제에서 길이가 짧은순으로 정렬 + 길이가 같을 때는 사전 순 정렬이라고 되어있었다.
- key = lambda x : (우선순위1, 우선순위2)로 정렬을 지정하였다.
n = int(input())
string = []
for _ in range(n):
string.append(input())
#중복 제거
string = list(set(string))
#길이 -> 사전 순서로 정렬
string = sorted(string, key = lambda x:(len(x),x))
for s in string:
print(s)
'알고리즘 > 정렬' 카테고리의 다른 글
[백준 -실버5] 10989번 수 정렬하기 3(정렬, 파이썬) (0) | 2022.02.05 |
---|---|
[백준 -실버5] 11651번 좌표 정렬하기2(정렬, 2차원 리스트 정렬, 파이썬) (0) | 2022.02.05 |
[백준 -실버2] 18870번 좌표 압축(정렬, 파이썬) (0) | 2022.02.05 |
[프로그래머스 - Level 2] 가장 큰 수(정렬, 파이썬) (0) | 2022.01.24 |
[백준-실버5] 11650번 좌표 정렬하기(파이썬) (0) | 2022.01.20 |