Algorithm/BOJ

[백준/Python] 1141 접두사

Logistic 2024. 8. 26. 17:58

문제

- https://www.acmicpc.net/problem/1141


풀이 & 코드

import sys 
input = sys.stdin.readline
#sys.stdin.readline을 사용해 속도 저하로 인한 시간 초과 방지
n = int(input())
str = [(input()).rstrip() for _ in range(n)]
#rstrip : 문자열에 오른쪽 공백이나 인자가된 문자열의 모든 조합 제거

str.sort(key=len)
#다른 단어의 접두사가 되는 단어는 다른단어보다 크기가 작거나 같음
#문자열의 길이가 짧은 순서대로 정렬, 자기 위치보다 뒤에있는 단어와 비교
res = 0
#for문으로 단어 check
for i in range(n):
    flag = False
    #현재 단어보다 길이가 긴 단어 확인
    for j in range(i+1,n):
        #현재 단어가 접두사인지 check
        if str[i] == str[j][0:len(str[i])]:
            flag = True
            break
    #접두사가 아니면 res cnt
    if not flag:
        res += 1
print(res)