728x90
[백준] 1181번 Python 파이썬
https://www.acmicpc.net/problem/1181
1181번: 단어 정렬
첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.
www.acmicpc.net
먼저 for문을 사용하여 words 리스트에 단어들을 담아주는데 if문을 사용하여 중복이 되는 단어는 담지 않도록 해준다.
정렬을 하기 위해 sort() 함수를 사용하는데 key 함수와 lambda 함수를 이용하여 문자열의 길이를 우선 정렬한 후, 알파벳 순으로 정렬해준다.
import sys
n = int(sys.stdin.readline())
words = []
for i in range(n):
wd = sys.stdin.readline()
if wd not in words:
words.append(wd)
words.sort(key = lambda x : (len(x), x))
for i in words:
print(i, end = '')
혼자 공부하며 올리는 블로그입니다. 틀린 내용은 댓글 남겨주시면 감사하겠습니다.
728x90
'BAEKJOON (Python) > 단계별' 카테고리의 다른 글
BAEKJOON_18870 "좌표 압축" PYTHON (0) | 2023.03.20 |
---|---|
BAEKJOON_10814 "나이순 정렬" PYTHON (0) | 2023.03.20 |
BAEKJOON_11651 "좌표 정렬하기 2" PYTHON (0) | 2023.03.16 |
BAEKJOON_2108 "통계학" PYTHON (2) | 2023.03.16 |
BAEKJOON_10989 "수 정렬하기 3" PYTHON (0) | 2023.03.16 |