호기심 많은 분석가
[백준 1181] 단어 정렬 (Python) 본문
1181번: 단어 정렬
첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.
www.acmicpc.net
import sys
n = int(sys.stdin.readline().rstrip())
arr = [sys.stdin.readline().strip() for _ in range(n)]
new_arr = [(i, len(i)) for i in set(arr)]
ans_list = sorted(new_arr, key=lambda x : (x[1], x[0]))
for i in ans_list :
print(i[0])
이번 문제는 크게 어렵지 않다.
- 여러 번 입력된 경우 하나만 출력하라 했으니, 배열을 입력받아서 set으로 중복을 없애준다.
- 다음 list comprehension을 통해 길이 feature를 하나 추가해준다
- 마지막으로 길이에 대해서 sort먼저, 그 후 사전 순으로 sorting 해주면 문제 마무리
'Coding > Coding Test & Algorithm' 카테고리의 다른 글
[백준 10814] 나이순 정렬 (Python) (0) | 2021.06.02 |
---|---|
[백준 2609] 최대공약수와 최소공배수 (Python) (0) | 2021.06.02 |
[백준 1018] 체스판 다시 칠하기 (Python (0) | 2021.06.02 |
[백준 11050] 이항 계수 1 (Python) (0) | 2021.06.02 |
[백준 9625] BABBA (Python) (0) | 2021.05.27 |