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

๐Ÿ’ก๋ฌธ์ œ ๋ถ„์„ ์š”์•ฝ

๋ฌธ์ž์—ด S๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, S์˜ ์„œ๋กœ ๋‹ค๋ฅธ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

๋ถ€๋ถ„ ๋ฌธ์ž์—ด์€ S์—์„œ ์—ฐ์†๋œ ์ผ๋ถ€๋ถ„์„ ๋งํ•˜๋ฉฐ, ๊ธธ์ด๊ฐ€ 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์•„์•ผ ํ•œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ababc์˜ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์€ a, b, a, b, c, ab, ba, ab, bc, aba, bab, abc, abab, babc, ababc๊ฐ€ ์žˆ๊ณ , ์„œ๋กœ ๋‹ค๋ฅธ๊ฒƒ์˜ ๊ฐœ์ˆ˜๋Š” 12๊ฐœ์ด๋‹ค.

๐Ÿ’ก์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„

for๋ฌธ์„ ์ด์šฉํ•ด ์ฒซ๋ฒˆ์งธ ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ฌธ์ž์—ด, ๋‘๋ฒˆ์งธ ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ฌธ์ž์—ด ๋“ฑ์„ ์ˆœ์„œ๋Œ€๋กœ ๊ตฌํ•˜์—ฌ set์— ์ถ”๊ฐ€ํ•œ๋‹ค. ์ค‘๋ณต์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด set์„ ์ด์šฉํ•˜๊ณ , set์˜ ํฌ๊ธฐ์—์„œ 1์„ ๋บ€ ๊ฐ’์„ ๋ฆฌํ„ดํ•œ๋‹ค.

https://blog.kakaocdn.net/dn/dAyzU5/btsEmqswzrk/PUZR1jmb1fTR8mQxsNI5H0/img.jpg

๐Ÿ’ก์ฝ”๋“œ

S= input()
len_S=len(S)
l=set()
for i in range(len_S):
    for j in range(i, len_S):
        l.add(S[i:j])

print(len(l)-1)

****

๐Ÿ’ก์‹œ๊ฐ„๋ณต์žก๋„

N+(N-1)+(N-2)+...1.. ์ด๋ฏ€๋กœ ๋“ฑ์ฐจ์ˆ˜์—ด

๐Ÿ’กย ํ‹€๋ฆฐ ์ด์œ 

#import sys#input = sys.stdin.readline#S= input()#len_S=len(S)#l=[]#for i in range(len_S):#ย ย ย ย for j in range(i, len_S):#ย ย ย ย ย ย ย ย if S[i:j] not in l:#ย ย ย ย ย ย ย ย ย ย ย ย l.append(S[i:j])#print(len(l)-1)

์ค‘๋ณต์ฒ˜๋ฆฌ๋ฅผ not in l๋กœ ํ•ด์„œ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚ฌ๋‹ค. set์„ ์ด์šฉํ•ด ํ•ด๊ฒฐํ•จ

๐Ÿ’กย ๋Š๋‚€์  or ๊ธฐ์–ตํ• ์ •๋ณด

l[0:0], l[1:1]์€ ๊ณต๋ฐฑ ' '์ด ๋ฐ˜ํ™˜๋œ๋‹ค.