본문 바로가기
백준

[백준] 11478번 : 서로 다른 부분 문자열의 개수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2023. 11. 24.
728x90
반응형

 

 

11478번: 서로 다른 부분 문자열의 개수

첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다.

www.acmicpc.net

 

1. 문제 설명

2. 풀이과정

해당 문제는 문자열의 부분 문자열을 구하고 서로 다른 부분 문자열의 개수를 구하는 문제이다.

서로 다른 부분 문자열의 개수이므로 집합의 형태로 부분 문자열을 저장하면 된다.

하여 세트 자료형을 만들고 모든 부분 문자열을 세트에 추가한 뒤, 세트의 원소 개수를 출력하면 된다.

 

  1. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys
  2. 문자열을 입력받는다. S = sys.stdin.readline().rstrip()
  3. 서로 다은 부분 문자열을 저장할 세트를 생성한다. s = set()
  4. 부분 문자열의 시작 위치를 문자열의 길이만큼 반복하며 for i in range(len(S))
  5. 시작 위치의 다음부터 마지막까지 반복하여 for j in range(i + 1, len(S) + 1)
  6. 해당 부분 문자열을 세트에 추가한다. s.add(S[i : j])
  7. 세트에 저장된 부분 문자열의 개수를 출력한다. print(len(s))
반응형

3. 소스코드

import sys

S = sys.stdin.readline().rstrip()

s = set()
for i in range(len(S)):
    for j in range(i + 1, len(S) + 1):
        s.add(S[i : j])
    
print(len(s))
728x90
반응형