개발 연습장/백준 문제풀이

[파이썬, Python] 백준 11478: 서로 다른 부분 문자열의 개수

LooanCheong 2023. 2. 7. 10:07
반응형

문제

https://www.acmicpc.net/problem/11478

 

11478번: 서로 다른 부분 문자열의 개수

첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다.

www.acmicpc.net

코드

s = input()
text = set()

for i in range(len(s)):
    for j in range(i, len(s)):
        text.add(s[i:j+1])

print(len(text))

설명

이중 반복문을 통해 해결했다.

우선 i의 범위를 s의 개수로 잡아주고,
j의 범위를 i부터 s의 개수로 잡아주어 모든 문자열을 돌 수 있게 하고,
i부터 j+1까지의 범위를 text에 추가하여 부분 문자열을 구한다.

이 때, text는 set 형태의 자료형이므로 중복이 자동으로 제거된다.

반응형