문제
https://www.acmicpc.net/problem/1181
1181번: 단어 정렬
첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.
www.acmicpc.net
나의 풀이
import sys
num=int(input())
strList=list()
for i in range(num):
strList.append(sys.stdin.readline().strip())
strList=sorted(list(set(strList)))
strList.sort(key=len)
for i in range(len(strList)):
print(strList[i])
다른 사람의 풀이
def key(s):
return (len(s),s)
for s in sorted(set([input() for n in range(int(input()))]), key=key):
print(s)
sort함수에서의 key값은 여러개의 요소를 기준으로 정렬할 경우 튜플을 사용할 수 있다.
'알고리즘 공부' 카테고리의 다른 글
백준 10815번, bisect(), set을 이용한 원소 유무 검사 (0) | 2023.01.27 |
---|---|
백준 2257번, 스택 알고리즘 (0) | 2023.01.27 |
백준 11650번, lambda와 key를 이용해 특정 기준으로 배열 정렬하기 (0) | 2023.01.10 |
백준 2108, Counter, list comprehension (0) | 2023.01.08 |
백준 9020번, filter와 lambda (0) | 2023.01.02 |
댓글