๐ฅ Code-kata week1-4
๋ฌธ์
strs์ ๋จ์ด๊ฐ ๋ด๊ธด ๋ฐฐ์ด์
๋๋ค.
๊ณตํต๋ ์์ ๋จ์ด(prefix)๋ฅผ ๋ฐํํด์ฃผ์ธ์.
์๋ฅผ ๋ค์ด
strs = ['start', 'stair', 'step']
return์ 'st'
strs = ['start', 'wework', 'today']
return์ ''
ํ์ด
๋ด๊ฐ ์ฒ์์ ์ ๊ทผํ ๋ฐฉ์์ set ์๋ฃํ์ ํ์ฉํ๋ ๊ฒ์ด์๋ค.
list๋ฅผ set์ผ๋ก ๋ฐ๊พธ๋ฉด ์ค๋ณต๊ฐ์ด ์ ๊ฑฐ๋๋ค๋ ์ ์ ํ์ฉํด,
๊ฐ ๋จ์ด ๋ณ ๋ฌธ์๋ฅผ list๋ก ๋ฌถ๊ณ set์ผ๋ก ๋ฐ๊ฟจ์ ๋ ๊ธธ์ด๊ฐ 1์ด๋ฉด
-> ๋ชจ๋ ๊ฐ์ ๋ฌธ์๋ผ๋ ๋ป์ด๋ค.
strs = ['start','stair','step']
def get_prefix(strs):
result = ''
min_length = min([len(str) for str in strs])
#for๋ฌธ์ ํตํด ์๋์ ๊ฐ์ด new_lst๋ฅผ ๋ง๋ค๊ณ , ๋น๊ต๊ฐ ๋๋ ํ์๋ slicing์ ํตํด ์ฒซ ๋ฌธ์๋ฅผ ์ญ์ ํ๋ค.
new_lst = [strs[0][0], strs[1][0], strs[2][0]]
strs[i] = strs[1:] #['tart','tair','tep']
new_lst = [strs[0][0], strs[1][0], strs[2][0]]
strs[i] = strs[1:] #['art','air','ep']
...
...
while min_length != 0:
if set(new_lst) == 1:
#return๊ฐ์ ์ ์ฅํ๊ณ ๋ค์ ๋ฌธ์๋ก ๋์ด๊ฐ๋ค
...
๊ทธ๋ฐ๋ฐ ์ด๋ ๊ฒ ํ๋๋ ๋ช ๊ฐ์ง ๋ฌธ์ ์ ์ด ์์๋ค.
''
์ด ๋์ด๋ฒ๋ฆฌ๋ ๊ฒฝ์ฐ error๊ฐ ๋ฐ์ํ๋ค. ๊ทธ๋์ ๋ค์ ์๊ฐํ ๋ฐฉ์์,
''
์ด ๋ ๋์ด๋ฏ๋ก, min_length
๋ณ์๋ฅผ ์ ์ธํด์ ์ด๋ฅผ ์ด์ฉํ๋ค. ''
์ด ๋ฐ์ํ๋ ๊ฒฝ์ฐ๋ 2๊ฐ์ง, ์กฐ๊ฑด๋ฌธ์ผ๋ก ์ฒ๋ฆฌํ๋ค. ''
return ''
์ด ์์ผ๋ฉด ''
return๊ทธ๋์ ์๋์ ๊ฐ์ด ๋ค์ ํ์ด.
def get_prefix(strs):
result = ''
min_length = min([len(str) for str in strs])
if not strs : return result
if min_length == 0 : return result
i = 0
while True:
std_num = strs[0][i]
for str in strs:
if str[i] != std_num : return result
result += std_num
i += 1
if min_length == i : return result