티스토리 뷰
https://www.acmicpc.net/problem/11478
11478번: 서로 다른 부분 문자열의 개수
첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다.
www.acmicpc.net
👩💻문제 이해
중복되는 값은 허용하지 않기 때문에 set 자료형을 사용한다.
👩💻set() 자료형과 반복문 사용 : 성공🌈
s = input()
res = set()
for i in range(len(s)):
res.add(s[i])
res.add(s)
for i in range(1, len(s)-1):
for j in range(len(s)-i):
res.add(s[j:j+i+1])
print(len(res))
s = input()
res = set()
for i in range(len(s)):
res.add(s[i])
# 1자리 문자 추가
res.add(s)
# 전체 문자열 추가
for i in range(1, len(s)-1):
for j in range(len(s)-i):
res.add(s[j:j+i+1])
# 2자리 ~ len(s)-1 자리 까지 문자열 추가
print(len(res))
👩💻반복문 하나로 모든 경우의 수 표현 🌈
s = input()
res = set() # set 자료 구조를 통해 중복을 제거
# 반복문을 통해 부분 문자열을 찾는다.
for i in range(len(s)):
for j in range(len(s) + 1):
# 부분 문자열이 있으면 temp에 저장
if s[i:j]:
res.add("".join(s[i:j]))
# temp의 길이를 출력
print(len(res))
'🦖 Programming > Python' 카테고리의 다른 글
[Python] 백준 알고리즘 1654번 : 랜선 자르기 (0) | 2022.09.19 |
---|---|
[Python] ⭐️백준 알고리즘 1018번 : 체스판 다시 칠하기 (0) | 2022.09.14 |
[Python] 백준 알고리즘 1920번 : 수 찾기 (0) | 2022.09.13 |
[Python] 백준 알고리즘 1436번 : 영화감독 숌 (0) | 2022.09.08 |
[Python] 백준 알고리즘 7568번 : 덩치 (0) | 2022.09.07 |
댓글