본문 바로가기
백준알고리즘/집합과 맵

(Python/🥈3)백준 알고리즘 11478번: 서로 다른 부분 문자열의 개수

by windy7271 2022. 5. 26.
728x90
반응형

문제 출처:https://www.acmicpc.net/step/49

 

집합과 맵 단계

카드의 집합을 만들어 특정 카드가 집합에 있는지 빠르게 찾는 문제

www.acmicpc.net

풀이:

word = input
new_word = list()

for i in range(len(word)):              # 단어의 길이만큼 반복 즉 5번
    for j in range(len(word)- i):       # 단어 끝까지만 반복해야하므로 앞에 한거 빼줌
        new_word.append(word[i:j+i+1])  # 리스트에 추가하기 


print(len(set(new_word)))

 

조금 어려웠다. 처음에는 리스트에 담아서 한개씩 뽑아서 넣으려고 했지만 코드로 어떻게 써야 할줄 몰라서 다르게 생각했는데,

 

 

new_word.append(word[i:j+i+1])  # 리스트에 추가하기

이 부분을 생각하는데 오래 걸렸다.

 

코드를 보면 

i 가 0일때를 보면

a ab,aba,abab,ababc를 넣어야하므로

 

리스트에 인덱싱을 사용하여

0:1 까지 0:2까지 이런식으로 해준 코드가 이 코드다

 

 

반응형

댓글