
✔️ silver 3
자료 구조
문자열
해시를 사용한 집합과 맵
트리를 사용한 집합과 맵
정말 단순하게 접근했다.
첫 문자부터 1개, 2개, 3개씩 묶어서 문자열을 일일이 체크했다.
중복 없이 세기 때문에 parts를 집합으로 정의했다.
# 서로 다른 부분 문자열의 개수
# hash
import sys
input = sys.stdin.readline
if __name__ == "__main__":
s = input().rstrip()
parts = set()
for l in range(1, len(s)+1):
idx = 0
while idx+l <= len(s):
parts.add(s[idx: idx+l])
idx += 1
print(len(parts))
바킹독 해시 문제집 마지막 문제였다.
해시를 완벽 이해했냐?
그건 아닌 것 같다.
python에서는 딕셔너리, 집합이 잘 되어 있어서 좀더 수월했던건 아닐까 생각하기도 한다.
물론 내가 쉬웠다는 얘기는 아니었다...
아무튼 공부해야지.