[ds] 백준 #11478 서로 다른 부분 문자열 개수

zio·2022년 2월 8일
0

Algorithm

목록 보기
5/11

문제

https://www.acmicpc.net/problem/11478

풀이

1. 다 쪼개서 set으로 중복 제거

#서로 다른 부분 문자열의 개수
s = input()
n = len(s)
count = 0
for i in range(1, n+1):
  compare = []
  for j in range(n-i+1):
    compare.append(s[j:j+i])
    temp = set(compare)
  count+=len(temp)
print(count)

접근

입력받은 문자열을 길이1부터 문자열 길이까지 길이를 1씩 늘려가면서 쪼개서 중복제거해서 중복 제거된 문자열 개수 넣고 그 갯수 카운팅해서 업데이트해주는거 반복함.
근데 다시생각해보니까 너무 비효율적임.
dictionary 쓰면 시간 더 효율적으로 줄일 수 있을 듯. 다시 풀어서 업데이트 해야지.

2. dictionary를 사용해서 중복 제거

profile
🐣

0개의 댓글