Coding Test/정렬

[TIL] 정렬(백준 1181 파이썬) 2022.01.19

HUR129 2022. 1. 19. 20:33

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)