1181번: 단어 정렬
첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.
www.acmicpc.net
아이디어:
파이썬으로 풀면 아주 간단하게 풀 수 있다.
일단 중복을 제거하기 위해 set을 사용하고, 후에는 sorted()함수에 lambda를 사용하여 다중 조건을 걸어 정렬을 한다.
코드:
#문자열, 정렬
import sys
n = int(sys.stdin.readline())
arr = []
for _ in range(n):
arr.append(sys.stdin.readline().rstrip())
#set = 중복 제거
arr = set(arr)
#다중 조건 정렬
ans = sorted(arr, key = lambda x: (len(x), x))
for i in ans:
print(i)
'알고리즘💻 > 이분탐색&정렬&분할정복' 카테고리의 다른 글
BOJ 2805번: 나무 자르기 (0) | 2021.01.29 |
---|---|
BOJ 3758번: KCPC (0) | 2021.01.29 |
BOJ 1026번: 보물 (0) | 2021.01.29 |
BOJ 2470번: 두 용액 (0) | 2021.01.25 |
BOJ 2343번: 기타 레슨 (0) | 2021.01.25 |