1일 1솔

[백준] 1141번: 접두사 (Python, 파이썬)

junmukbap98 2023. 9. 27. 00:49

문제 링크: https://www.acmicpc.net/problem/1141

 

1141번: 접두사

접두사X 집합이란 집합의 어떤 한 단어가, 다른 단어의 접두어가 되지 않는 집합이다. 예를 들어, {hello}, {hello, goodbye, giant, hi}, 비어있는 집합은 모두 접두사X 집합이다. 하지만, {hello, hell}, {giant,

www.acmicpc.net

하이고 길이별로 sort를 해야할지, 그냥 오름차순 sort를 해야할지 고민하다가 후자를 택한게 오랜 시간을 잡아먹게 한 듯 하다..

 

Key point

접두사는 비교 단어들보다 항상 짧아야하므로 길이순으로 정렬했어야 한다.

N = int(input())
words = []
for _ in range(N):
    words.append(input())

words = sorted(words, key=lambda x: len(x))
res = 0

for i in range(N):
    flag = False
    for j in range(i+1, N):
        if words[i] == words[j][0:len(words[i])]:
            flag = True
            break
    if not flag:
        res += 1

print(res)