BAEKJOON (Python)/단계별

BAEKJOON_1181 "단어 정렬" PYTHON

RiLLa_0511 2023. 3. 18. 16:09
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 = '')

 

혼자 공부하며 올리는 블로그입니다. 틀린 내용은 댓글 남겨주시면 감사하겠습니다.