문제
11478번: 서로 다른 부분 문자열의 개수
첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다.
www.acmicpc.net
알고리즘
- set 자료 구조를 통해 중복을 제거한다.
- 반복문을 통해 부분 문자열을 찾고 부분 문자열이 있다면 temp에 저장한다.
- temp의 길이를 출력한다.
코드
import sys
s = list(map(str, sys.stdin.readline().rstrip("\n")))
temp = set() # set 자료 구조를 통해 중복을 제거
# 반복문을 통해 부분 문자열을 찾는다.
for i in range(len(s)):
for j in range(len(s) + 1):
# 부분 문자열이 있으면 temp에 저장
if s[i:j]:
temp.add("".join(s[i:j]))
# temp의 길이를 출력
print(len(temp))
github
GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법
내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.
github.com
'CodingTest > Baekjoon' 카테고리의 다른 글
| [baekjoon] 백준 3048번(파이썬): 개미 (0) | 2022.01.20 |
|---|---|
| [baekjoon] 백준 2002번(파이썬): 추월 (0) | 2022.01.19 |
| [baekjoon] 백준 14405번(파이썬): 피카츄 (1) | 2022.01.17 |
| [baekjoon] 백준 4959번(파이썬): 비밀번호 발음하기 (0) | 2022.01.16 |
| [baekjoon] 백준 4889번(파이썬): 안정적인 문자열 (0) | 2022.01.15 |