문제
알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오.
- 길이가 짧은 것부터
- 길이가 같으면 사전 순으로
단, 중복된 단어는 하나만 남기고 제거해야 한다.
내 코드
import sys
input = sys.stdin.readline
def main() :
n = int(input())
data = []
for _ in range(n) :
data.append(input().rstrip())
data = list(set(data))
data.sort(key=lambda x: (len(x),x))
for i in data :
print(i)
def test() :
return 0
if __name__ == "__main__" :
main()
느낀점
1. set으로 중복 제거
2. sort에 정렬 순서를 lambda로 주기
풀이 시간

'알고리즘 > 백준' 카테고리의 다른 글
| 백준 18870번 : 좌표 압축(S2) (0) | 2025.01.28 |
|---|---|
| 백준 10814번 : 나이순 정렬(S5) (0) | 2025.01.28 |
| 백준 7568번 : 덩치(S5) (0) | 2025.01.28 |
| 백준 2839번 : 설탕배달(S4) (0) | 2025.01.28 |
| 백준 1436 번 : 영화감독 숌(S5) (0) | 2025.01.24 |