백준

[백준-Python] 단어 정렬 : 1181번

Yuuuki 2024. 6. 7. 10:51

🥈 Silver5

https://www.acmicpc.net/problem/1181

 

 

✅ 1번 풀이 : set

from collections import defaultdict
n=int(input())

# 중복 제거를 위해 set
words=defaultdict(set)

for _ in range(n):
    word=input()
    words[len(word)].add(word)


keys=list(words.keys())
keys.sort()

for key in keys:
    word_list=list(words[key])
    word_list.sort()

    for w in word_list:
        print(w)
메모리 실행시간
34424KB 868ms

 

 

✅ 2번 풀이: dictionay

from collections import defaultdict
n=int(input())

words={input() for _ in range(n)}
words=list(words)

# 길이순 -> 사전순 (튜플 사용)
words.sort(key=lambda x:(len(x),x)) # 길이 순으로 정렬, 길이가 같다면 사전 순으로 정렬

for word in words:
    print(word)
메모리 실행시간
36664KB 832ms