본문 바로가기
코딩테스트 파이썬/백준

접두사

by 세용용용용 2024. 12. 24.

1141번: 접두사

 

나의 코드

import sys

def _head_test(str_dict, n):
    not_use = set()
    for i in str_dict:
        now_str = ''
        for j in i:
            now_str += j
            if (now_str in str_dict) and (now_str != i):
                not_use.add(now_str)
    return n - len(not_use)

n = int(sys.stdin.readline())
str_dict = {}
for _ in range(n):
    str_dict_key = sys.stdin.readline().rstrip()
    if str_dict_key in str_dict:
        n -= 1
    else:
        str_dict[str_dict_key] = 0
print(_head_test(str_dict, n))

 

시간 복잡도

for i in str_dict : 딕셔너리 키 값을 순회 ( 선형 시간 복잡도 )
    now_str = ''
    for j in i : 단어를 순회 ( 선형 시간 복잡도 )
        now_str += j
해당 알고리즘 시간 복잡도 : 이차형 시간 복잡도( O(n**2) )

'코딩테스트 파이썬 > 백준' 카테고리의 다른 글

컴백홈  (0) 2024.12.27
RGB거리  (0) 2024.12.26
행렬  (0) 2024.12.23
수열 정렬  (1) 2024.12.17
투명  (0) 2024.12.16