

문제 분석
- 단어들에 대해 다음 우선순위로 단어 정렬
- 길이가 짧은 순서
- 길이가 같으면 사전순
- 단, 중복 단어는 하나만 남기고 제거
코드 설계
- 진짜 비효율적인거는 1~50까지의 길이에 해당하는 문자열을 리스트에 넣고
- 각 리스트를 사전 순으로 정렬한 뒤
- 정답 리스트에 하나씩 append 하는 것
정답 코드
import sys
input = sys.stdin.readline
n = int(input())
words = [input().strip() for _ in range(n)]
words = list(set(words)) # 중복 단어 제거
words.sort() # 사전 순 정렬
words.sort(key=len) # 길이 순 정렮
for w in words :
print(w)
다른 사람 코드 1
n = int(input())
arr = []
for _ in range(n):
arr.append(input())
# 집합은 순서가 없음
arr = list(set(arr))
arr.sort(key = lambda s : [len(s), s])
print('\n'.join(arr))
2회차 - 25.02.12
import sys
input = sys.stdin.readline
n = int(input())
words = [input().strip() for _ in range(n)]
words = sorted(list(set(words)), key=lambda x : (len(x), x))
print('\n'.join(words))
'코딩 테스트 > 백준' 카테고리의 다른 글
[Python] 백준 2231 분해합 (1) | 2024.12.29 |
---|---|
[Python] 백준 25314 코딩은 체육과목 입니다. (0) | 2024.12.29 |
[Python] 백준 2750 수 정렬하기 (0) | 2024.12.26 |
[Python] 백준 2563 색종이 (0) | 2024.12.26 |
[Python] 백준 10798 세로 읽기 (0) | 2024.12.24 |