문제출처: 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 |