https://www.acmicpc.net/problem/11478
# 백준 11478 서로 다른 부분 문자열의 개수
s = input()
subword = []
k=1
for i in range(len(s)): # 1
for j in range(len(s)+1-k): # 2
subword.append(s[j:j+k])
k += 1
subword=set(subword)
print(len(subword))
문자열 슬라이싱을 이용했습니다.
k는 subword의 크기입니다.
# 1 : subword는 크기가 1부터 len(s)까지 가능하니까 len(s)만큼 반복해줍니다.
# 2 : k에 해당하는 크기만큼의 subword를 만들어서 리스트에 추가해줍니다. 그 후 k를 1씩 키워줍니다.
마지막으로 중복치 제거를 위해 set(subword)를 하고 그 길이를 출력 해줍니다.
'알고리즘 > 백준' 카테고리의 다른 글
[Python] 백준 파이썬 2477 참외밭 (1) | 2022.10.04 |
---|---|
[Python] 백준 파이썬 4153 직각 삼각형 (0) | 2022.10.03 |
[Python] 백준 파이썬 1269 대칭 차집합 (0) | 2022.10.01 |
[Python] 백준 파이썬 1764 듣보잡 (0) | 2022.09.30 |
[Python] 백준 파이썬 10816 숫자 카드 2 (0) | 2022.09.29 |