티스토리 뷰
https://www.acmicpc.net/problem/11478
11478번: 서로 다른 부분 문자열의 개수
첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다.
www.acmicpc.net
실버3 문제, 골드5 이하 문제는 매우 쉬운편에 속하는 문제들이라고 생각한다.
from sys import stdin
string = stdin.readline().strip()
substring_set = set()
for CurSubstringLength in range(1, len(string)+1):
for StartIndex in range(len(string)):
if StartIndex + CurSubstringLength <= len(string):
# print(string[StartIndex:StartIndex+i])
substring_set.add(string[StartIndex:StartIndex+CurSubstringLength])
print(len(substring_set))
CurSubstringLength는 부분 문자열의 길이다. 예를들어 1이라면 ababc의 부분문자열들은 a, b, a, b, c이고 2라면 ab, ba, ab, bc가 되겠다.
StartIndex는 각각의 부분 문자열의 길이에 따라 출력할 부분 문자열들의 시작 인덱스다.
Start Index | 0 | 1 | 2 | 3 | 4 |
부분 문자열의 길이 | |||||
1 | a | b | a | b | c |
2 | ab | ba | ab | bc | 범위 초과 |
3 | aba | bab | abc | 범위초과 | 범위 초과 |
4 | abab | babc | 범위 초과 | 범위 초과 | 범위 초과 |
5 | ababc | 범위 초과 | 범위 초과 | 범위 초과 | 범위 초과 |
범위가 초과되는 경우를 출력하면 분명 오답을 볼 것 같아서 애초에 출력시키지 않기 위해
if StartIndex + CurSubstringLength <= len(string):
라인을 추가하였다.
'Computer > 백준 풀이' 카테고리의 다른 글
[파이썬/백준1002/힌트] 터렛 (1) | 2022.12.27 |
---|---|
[파이썬/백준3053] 택시 기하학 (0) | 2022.12.26 |
[파이썬/백준1764] 듣보잡 (0) | 2022.12.19 |
[파이썬/백준10816] 숫자 카드 2 (1) | 2022.12.18 |
[파이썬/백준1620] 나는야 포켓몬 마스터 이다솜 (0) | 2022.12.17 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 3b1b
- Matrix algebra
- 기계학습
- 제한볼츠만머신
- MorganCircularfingerprint
- ai신약개발
- eigenvalue
- eigenvector
- manim library
- marginal likelihood
- elementry matrix
- manimtutorial
- Manimlibrary
- nanobody
- 선형대수
- 베이즈정리
- 파이썬
- 3B1B따라잡기
- kld
- manim
- kl divergence
- MatrixAlgebra
- 이왜안
- variational autoencoder
- 오일석기계학습
- 최대우도추정
- 백준
- MLE
- 나노바디
- 인공지능
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함