import sys
input=sys.stdin.readline
li=[]
n=int(input())
for i in range(n):
a=input().rstrip()
li.append((a,len(a)))
li=list(set(li))
li.sort(key=lambda x:(x[1], x[0]))
for i in li:
print(i[0])
2023.10.21 풀이
import sys
input=sys.stdin.readline
n=int(input())
arr=[]
for _ in range(n):
arr.append(input().rstrip())
arr=list(set(arr))
arr.sort(key=lambda x:(len(x), x))
for i in arr:
print(i)
- 람다식 정렬
: 정렬에 우선순위 부여
arr.sort(key=lambda x: (x[0], x[1])) 의 경우
x[0]을 기준으로 정렬 후 x[1]로 정렬- set
: 중복 제거 + 순서없는(Unordered) 집합 자료형
strings.sort(key=lambda x: (len(x),x))
처럼 글자수로도 람다식정렬가능.
3-1
L.sort()
L.sort(key = len)
for j in L:
print(j)
3-2
strings.sort(key=lambda x: (len(x),x))
print('\n'.join(strings))
람다식 정렬의 문법이 잠깐 헷갈렸고,
이중 리스트의 요소들을 반복문 외의 방법으로 꺼낼 수 없을지 고민했음.
나는 리스트에 글자 수를 넣은 후 정렬을 하였는데,
람다식 정렬에서는 3.다른 풀이 에서처럼 글자 수로도 정렬 가능하다는 것 알게 됨.