S = input()
newSet = set() # 중복없이 부분 문자열을 담아줄 set 객체
for i in range(len(S)): # 기준이 될 i
for j in range(len(S)): # 범위가 될 j
j = j + i # i가 1인경우 0부터 시작하지말고 1부터 시작해야함...
newSet.add(S[i:j+1]) # 슬라이싱의 end 인덱스 전까지 값이 복사되니까 +1 해줌
print(len(newSet))
https://www.acmicpc.net/problem/11478
11478번: 서로 다른 부분 문자열의 개수
첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다.
www.acmicpc.net
'study > Algorithm' 카테고리의 다른 글
[백준] 파이썬 24267 : 알고리즘의 수행시간 6 (0) | 2024.03.30 |
---|---|
[백준] 파이썬 24265 : 알고리즘 수업 - 알고리즘의 수행 시간 4 (0) | 2024.03.30 |
[백준] 파이썬 20291번 : 파일 정리 (0) | 2024.03.28 |
[백준] 파이썬 7785번 : 회사에 있는 사람 (0) | 2024.03.28 |
[백준] 파이썬 1546번 : 평균 (0) | 2024.03.28 |