๋ฌธ์
String ํ์ธ str ์ธ์์์ ์ค๋ณต๋์ง ์์ ์ํ๋ฒณ์ผ๋ก ์ด๋ฃจ์ด์ง ์ ์ผ ๊ธด ๋จ์ด์ ๊ธธ์ด๋ฅผ ๋ฐํํด์ฃผ์ธ์.
str: ํ
์คํธ
return: ์ค๋ณต๋์ง ์์ ์ํ๋ฒณ ๊ธธ์ด (์ซ์ ๋ฐํ)
์๋ฅผ ๋ค์ด,
str = "abcabcabc"
return ์ 3
=> 'abc' ๊ฐ ์ ์ผ ๊ธธ๊ธฐ ๋๋ฌธ
str = "aaaaa"
return ์ 1
=> 'a' ๊ฐ ์ ์ผ ๊ธธ๊ธฐ ๋๋ฌธ
str = "sttrg"
return ์ 3
=> 'trg' ๊ฐ ์ ์ผ ๊ธธ๊ธฐ ๋๋ฌธ
ํ์ด
์ด ๋ฌธ์ ์ ๊ฒฝ์ฐ, ํต์ฌ์ nested for๋ฌธ
์ด๋ค.
๋ฐํํด์ผ ํ๋ ๊ฐ์ ์ค๋ณต๋๋ ๋ฌธ์๊ฐ ์๋ ๋ฌธ์์ด์ ์ต๋๊ธธ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ์ฒซ ๋ฒ์งธ ๋ฌธ์๋ถํฐ ์์ํด์ ์์ชฝ for๋ฌธ์ ํตํด ํ๋ฒ ๋๊ณ ,
๋ฐ๊นฅ for๋ฌธ์ ํตํด ๋ ๋ฒ์งธ ๋ฌธ์์ด๋ถํฐ ๋ ๋๋ค.
def get_len_of_str(s):
N = len(s)
max_length = 0
์ฐ์ ์ธ์์ ์ ์ฒด ๊ธธ์ด๋ฅผ N
์ ๋ด๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ค๋ณต์๋ ๋ฌธ์์ด์ ์ต๋๊ธธ์ด๋ฅผ ๋ด์ max_length
์ 0์ ๋ด์์ค๋ค. 0์ ๋ด๋ ์ด์ ๋, ์ด๋ค ์ธ์์ด๋ ๋ฌธ์์ด ๊ธธ์ด์ ์ต์๊ฐ์ 1์ด๊ธฐ ๋๋ฌธ.
์ค๋ณต๋์ง ์๋ ๋ฌธ์์ด์ ๋ด์์ค ๋ณ์ result
๋ for๋ฌธ ์์ ์์ฑํ๋ค.
def get_len_of_str(s):
N = len(s)
max_length = 0
for i in range(N-1):
result = s[i]
for j in range(i+1,N):
if s[j] in result: break
else: result += s[j]
max_length = max(max_length, len(result))
return max_length
๋ช ๊ฐ์ง point
max_length=max(max_length, len(result))
์ ๊ฐ์ด ์ฐ๋ฉด, if๋ฌธ์ ์์จ๋ ๋๋ค.