반응형
문제
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 형태의 자료형이므로 중복이 자동으로 제거된다.
반응형
'개발 연습장 > 백준 문제풀이' 카테고리의 다른 글
[파이썬, Python] 백준 3009: 네 번째 점 (0) | 2023.02.09 |
---|---|
[파이썬, Python] 백준 1085: 직사각형에서 탈출 (0) | 2023.02.08 |
[파이썬, Python] 백준 1269: 대칭 차집합 (0) | 2023.02.06 |
[파이썬, Python] 백준 1764: 듣보잡 (0) | 2023.02.03 |
[파이썬, Python] 백준 10816: 숫자 카드 2 (0) | 2023.02.02 |