[Python] 알고리즘/Silver
[11478] 서로 다른 부분 문자열의 개수 (Python)
-Becca-
2021. 10. 31. 16:24
[문제]
https://www.acmicpc.net/problem/11478
11478번: 서로 다른 부분 문자열의 개수
첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다.
www.acmicpc.net
알고리즘 분류는 자료구조, 문자열, 트리/해시를 사용한 집합과 맵 입니다.
서로 다른 부분 문자열을 구해야 하므로, set()을 이용하여 중복을 제거합니다.
길이 1, 2, 3, ... 을 구하기 위해서, 이중 for문을 사용합니다.
[코드]
import sys
S = list(sys.stdin.readline().rstrip())
res = set()
for j in range(1, len(S) + 1):
for i in range(len(S)):
res.add("".join(S[i : i + j]))
print(len(res))