https://www.acmicpc.net/problem/1181
1181번: 단어 정렬
첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.
www.acmicpc.net
백준 1181 파이썬 풀이
num=int(input())
can=[input() for i in range((num))] ###num이 char 로 들어오니까 int로 잘 바꾸고 실행
can=list(set(can))
sort_list=[]
for word in can:
sort_list.append((len(word),word))
sort_list.sort(key = lambda word: (word[0],word[1])) ### sort_list안의 word를 반환하는데 (1,a) ,(2,bb) 이런식으로 오면 일단 짧은단어우선으로 set을 배열. 그다음 알파벳순
for word in sort_list:
print(word[1])
배운점
1. 내장함수 sort의 key 적용
코드블록 처음써봤는데 굉장히 잘만든것같다
사실 (길이,단어) set 안만들고 해도 되는데 연습해보고싶어서 넣어놓았다
정렬(4/14)
'Coding Test > 정렬' 카테고리의 다른 글
[TIL] 정렬(백준 1302 파이썬) 2022.01.22 (0) | 2022.01.22 |
---|---|
[TIL] 정렬(백준 10610 파이썬) 2022.01.21 (0) | 2022.01.21 |
[TIL] 정렬(백준 8979 파이썬) 2022.01.20 (0) | 2022.01.20 |
[TIL] 정렬(백준 2309 파이썬) 2022.01.18 (0) | 2022.01.18 |
[TIL] 정렬 (백준 2750 파이썬 / 백준 2751 파이썬) 2021.01.17 (0) | 2022.01.17 |