S = input()
result = 0
for i in range(1, len(S)+1): # 원소 개수
s = set()
j = 0
while j+i <= len(S):
s.add(S[j:j+i])
j += 1
result += len(s)
print(result)

S = input()
s = set()
for i in range(1, len(S)+1): # 원소 개수
j = 0
while j+i <= len(S):
s.add(S[j:j+i])
j += 1
print(len(s))

생각보다 둘 사이의 메모리와 시간 차이가 크다. 특히, 메모리가 엄청나게 차이가 난다. 새로 set을 만듦으로써 메모리를 줄이고자한 게 의도한 게 아니어서 더 놀라웠다 ㅎㅎ
S = input()
s = set()
for i in range(len(S)):
for j in range(i, len(S)):
s.add(S[i:j+1])
print(len(s))

내가 짠 1번 코드가 젤 좋당ㅎㅎ