https://www.acmicpc.net/problem/1181
1181번: 단어 정렬
첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.
www.acmicpc.net
# 1181 - Python3
import sys
input = sys.stdin.readline
n = int(input())
arr = []
for _ in range(n):
x = str(input().strip()) # strip 함수를 통해 x에 순수 문자열만 저장
arr.append([x, len(x)])
arr.sort(key = lambda arr : (arr[1], arr[0])) # len을 기준으로 우선 정렬되게 함, len 동일 시 사전식 정렬
removed = []
for i, j in arr:
if i not in removed:
removed.append(i) # arr에서 중복제거하여 removed에 append함
for i in removed:
print(i, end=" ")
print()
< line 13 >
- arr.sort(key = lambda arr: (arr[1], arr[0]))
: lambda를 통해 정렬 기준의 우선순위를 정함
: 좌측부터 적용
'코딩' 카테고리의 다른 글
| [Python] 백준 #7568. 덩치 (0) | 2023.03.10 |
|---|---|
| [Python] 백준 #11650. 좌표 정렬하기 (0) | 2023.03.10 |
| [Python] 백준 #2751. 수 정렬하기 2 (0) | 2023.03.10 |
| [Python] 백준 #10814. 나이순 정렬 (0) | 2023.03.10 |
| [Python] 백준 #2108. 통계학 (0) | 2023.03.05 |