[Boj문제풀이]

[Boj/백준] 1181 Python

ki7348 2021. 8. 23. 12:39

문제출처: https://www.acmicpc.net/problem/1181

 

1181번: 단어 정렬

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

www.acmicpc.net

 

 

1. 문제 접근 방식

배열에 입력을 받고 람다 표현식을 사용해서 길이 순서로 정렬을 한 다음에, 알파벳 순서대로 정렬을 하면 될 것이라고 생각했다.

 

 

2. 내가 푼 코드

import sys

case = int(sys.stdin.readline().strip())
arr=[]

for i in range(case):
    arr.append(sys.stdin.readline().strip())

arr=list(set(arr))

arr.sort(key=lambda x:(len(x),x))


for i in arr:
    print(i)

 

 

3. 결과 및 느낀점

정렬 문제에서는 람다식을 사용하면 좋을 것 같다(특히 조건이 두 개 이상일 경우)

다른 풀이의 경우 배열에 삽입할 때 문자의 길이도 삽입해서 sorting하는 풀이가 있는데

참고해보면 좋을 것 같다.

'[Boj문제풀이]' 카테고리의 다른 글

[Boj/백준] 9935 Python  (0) 2021.08.24
[Boj/백준] 11501 Python  (0) 2021.08.23
[Boj/백준] 4889 Python  (0) 2021.08.21
[Boj/백준] 14425 Python  (0) 2021.08.20
[Boj/백준] 1543 Python  (0) 2021.08.19