■ 문제 링크
https://www.acmicpc.net/problem/1181
1181번: 단어 정렬
첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.
www.acmicpc.net
■ 문제
본 문제는 solved.ac 실버5 문제이다.
■ 풀이
N을 입력받고, N개의 단어를 입력받으며,
word_list에 이미 존재하는 단어일 시, 리스트에 append 하지 않도록 하여 단어 중복을 제거하였다.
그 후, 정렬 기준을 lambda함수를 이용하여 정의해 주었다.
첫 번째 정렬 기준 : 단어 길이
두 번째 정렬 기준 : 단어 (사전순으로)
그리고 word_list안에 있는 순서대로 출력해 주었다.
N = int(input())
word_list = list()
for i in range(N):
word = input()
if word not in word_list:
word_list.append(word)
word_list.sort(key=lambda x:(len(x),x))
for i in word_list:
print(i)
'Algorithm > Python' 카테고리의 다른 글
[BOJ] 1259 팰린드롬수 - Python (0) | 2023.08.13 |
---|---|
[BOJ] 2231 분해합 - Python (0) | 2023.08.12 |
[BOJ] 2869 달팽이는 올라가고 싶다 - Python (0) | 2023.08.12 |
[BOJ] 1157 단어공부 - Python (0) | 2023.08.12 |
[BOJ] 10814 나이순 정렬 - Python (0) | 2023.08.12 |