티스토리 뷰

728x90

https://www.acmicpc.net/problem/1181

 

1181번: 단어 정렬

첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.

www.acmicpc.net

 


  • 해설 : 

알파벳 소문자로 이루어진 단어 N개가 주어질 때 이를 조건에 맞게 정렬하는 문제이다.

 

조건 1. 길이가 짧은 것이 앞으로

조건 2., 길이가 같다면 사전순으로 가까운 것이 앞으로

 

 

 


  • 풀이 :

쉬운 정렬 문제이다. 주어진 알파벳들을 list에 넣고 sort 함수를 사용하면 된다. 

풀이를 보면  정렬을 2회 진행하였는데 이 때는 Python의 이해도가 조금 낮았던 것 같다.

 

지금 푼다면 

 

x.sort( key = lambda x : x(x, len(x))) 로 구현했을 것 같다. 

 

 

 


  • 소스코드 : 

 

1
2
3
4
5
6
7
8
9
10
= []
for i in range(int(input())):
    y= input()
    x.append(y)
 
= list(set(x))
x.sort()
x.sort(key = len)
for c in x:
    print(c)
cs
320x100
댓글
© 2022 WonSeok, All rights reserved