ํฐ์คํ ๋ฆฌ ๋ทฐ
728x90
๋ฐ์ํ
๋ฌธ์
๋ฌธ์ ํ์ด
์ ๋ ฅ๋ ๋ฌธ์์ด์ ๋ ๋ฒ ์ด์ ๋์ค๋ ๋ถ๋ถ ๋ฌธ์์ด ์ค ๊ฐ์ฅ ๊ธด ๊ธธ์ด๋ฅผ ์ฐพ๋ ๋ฌธ์ ์ด๋ค. ์ด๋ ์์ ๋ค๋ฃฌ 16916 ๋ถ๋ถ ๋ฌธ์์ด, 1786 ์ฐพ๊ธฐ์์ ๋ฌธ์์ด ์ผ์น์ ๋ฐ๋ผ ์ ๋ณด๋ฅผ ์์ฑํ๋ `make_table`์ ํ์ฉํ๋ฉด ํด๊ฒฐํ ์ ์๋ ๋ฌธ์ ์ด๋ค.
์ฝ๋
def make_table(patten):
length = len(patten)
table = [0] * len(patten)
j = 0
for i in range(1, length):
while j > 0 and patten[i] != patten[j]:
j = table[j - 1]
if patten[i] == patten[j]:
j += 1
table[i] = j
return max(table)
if __name__ == "__main__":
s = input()
result = 0
for idx in range(len(s)):
sub_str = s[idx:len(s)]
result = max(result, make_table(sub_str))
print(result)
728x90
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 14425 ๋ฌธ์์ด ์งํฉ (0) | 2020.10.27 |
---|---|
๋ฐฑ์ค: 1305 ๊ด๊ณ (0) | 2020.10.27 |
๋ฐฑ์ค: 1786 ์ฐพ๊ธฐ (0) | 2020.10.22 |
๋ฐฑ์ค: 1717 ์งํฉ์ ํํ (0) | 2020.10.20 |
๋ฐฑ์ค: 16916 ๋ถ๋ถ ๋ฌธ์์ด (0) | 2020.10.19 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ