티스토리 뷰
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
- Manimlibrary
- 백준
- 파이썬
- 오일석기계학습
- MLE
- 이왜안
- 기계학습
- ai신약개발
- ai인공지능
- 인공지능
- MatrixAlgebra
- eigenvalue
- eigenvector
- marginal likelihood
- elementry matrix
- manimtutorial
- manim library
- 최대우도추정
- 베이즈정리
- variational autoencoder
- 제한볼츠만머신
- 3B1B따라잡기
- 3b1b
- Matrix algebra
- kl divergence
- 선형대수
- vae
- kld
- MorganCircularfingerprint
- manim
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함