문제
- 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)
'Algorithm > BOJ' 카테고리의 다른 글
[백준/C++17] 2908 상수 (0) | 2024.11.06 |
---|---|
[BOJ/C++] 단계별 (입출력과 사칙연산) (0) | 2024.11.04 |
[백준/Python] 11047 동전 0 (0) | 2024.08.18 |
[백준/Python] 17219 비밀번호 찾기 (0) | 2024.08.18 |
[백준/Python] 1764 듣보잡 (0) | 2024.08.10 |