[백준 1181번-파이썬]단어 정렬
백준 (BOJ) 11729번
https://www.acmicpc.net/problem/1181
사용언어 : PYTHON
1.문제
알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오.
1.길이가 짧은 것부터
2.길이가 같으면 사전 순으로
조건에 따라 정렬하여 단어들을 출력한다. 단, 같은 단어가 여러 번 입력된 경우에는 한 번씩만 출력한다.
2.풀이
중복 제거는 set함수를 사용하여 제거하고, 정렬은 sort함수를 사용하여 정렬하였다.
이때 상위 조건 A과 하위 조건 B가 있는경우, B로 먼저 정렬 한 후에 A로 정렬해야 한다.
여기선 A가 길이가 짧은 것부터, B가 길이가 같으면 사전 순으로 이다. 따라서 사전 순으로 정렬하고 길이가 짧은 순으로 정렬해야 한다.
3.코드
import sys
input = sys.stdin.readline
N=int(input())
l=list()
for _ in range(N):
l.append(input().rstrip())
l=sorted(list(set(l))) # 사전 순으로 정렬
l.sort(key=lambda x:len(x)) # 길이가 짧은 순으로 정렬
for i in l:
print(i)
댓글남기기