๋๋์ผ ๋ฌธ์ ๋งํ๊ธฐ์ ๋๊ฐ ํ๋์ฐ~~
์ค๋์ ๋ฌธ์ ๋ ๊ณตํต๋ ์์ ๋จ์ด ์ถ๋ ฅํ๊ธฐ..!
strs์ ๋จ์ด๊ฐ ๋ด๊ธด ๋ฐฐ์ด์ ๋๋ค.
๊ณตํต๋ ์์ ๋จ์ด(prefix)๋ฅผ ๋ฐํํด์ฃผ์ธ์.
์๋ฅผ ๋ค์ด
strs = ['start', 'stair', 'step']
return์ 'st'
-
strs = ['start', 'stair', 'step']
return์ 'st'
-
strs = ['start', 'wework', 'today']
return์ ''
def get_prefix(strs):
new_strs = sorted(strs)
if len(strs) == 0:
return ''
str = ''
if new_strs[0][0] == new_strs[-1][0]:
for i in range(len(new_strs[-1])):
if new_strs[0][i] == new_strs[-1][i]:
str += new_strs[0][i]
return str
else:
return ''
์์งํ ๋งํ๋ฉด ๋ฌธ์ ์ดํด๊ฐ ์ ๋์ง ์์๋ค.
'ํ๊ธ์๋ง ๊ฒน์ณ๋ ๊ณตํต๋ ์์๋จ์ด ์๋๊ฐ?!' ๋ผ๊ณ ์๊ฐํ๋๋ฐ
์์ํ๋ ๋จ์ด๊ฐ ๊ฒน์น๊ธฐ๋ง ํ๋ฉด ์นด์ดํธ ํ๋ฉด ๋์๋ ๊ฒ..!
๋ด ์๊ฐ์ ํ๊ณ๋ ๋ค์๊ณผ ๊ฐ์๋ค.
- ์ด๋ป๊ฒ ํด์ผ ๊ฐ์ฅ ํจ์จ์ ์ผ๋ก ํ ์ ์์ง? ๋ฌด์์ ๋น๊ต?
- ํ ๋จ์ด์ฉ ๋ค์ ๋จ์ด์ ๋น๊ตํ๋ฉด, ๋ง์ฝ [1,2,
3,4,5] ์ด๋ฐ ๊ตฌ์กฐ์ฌ์ 3๋ฒ index์์ ๋น๊ต๋ฅผ ๊ทธ๋ง๋๋ฉด?!(์ฌ์ค ๊ณตํต๋ ์์๋จ์ด๊ฐ ์๋ค๋ ๋ป์ด๋๊น ์๊ด์ ์์๋๋ฐ ์ด๋ '๊ณตํต๋ ๋จ์ด'๋ผ๊ณ ์ดํดํด์.. ใ ใ ใ )
๊ฒฐ๊ตญ ๊ตฌ๊ธ๋ง์ ํ๊ณ ,
๋ฌธ์ ์ดํด๋ ๋ค๋ฅธ ์ฌ๋ ์์ ๋ฅผ ๋ณด๊ณ ๊ฐ๋ฅํ๋ ๊ฒ.. ์๊ณ ๋ฆฌ์ฆ ๋ฌด์์์ด ๐คฏ
ํํธ๋ ๐๐ป๐๐ป
- ์ฐ์ ๋จ์ด๋ฅผ
sorted( )
ํจ์๋ฅผ ์ฌ์ฉํด์ ์ ๋ ฌํด์ฃผ๊ธฐ..!
๐๐ป ์ํ๋ฒณ ์์ผ๋ก ๋จ์ด ์ ๋ ฌ์ด ๋๋ค- ๋ฐฐ์ด ๋ด ์์ ๋จ์ด์ ๋ ๋จ์ด์ ์ฒซ ๋จ์ด๊ฐ ๊ฐ๋ค๋ฉด ๊ณตํต๋ ์์๋จ์ด๋ผ๋ ๋ป!
- ๋ง์ง๋ง ๋จ์ด์ ๊ธ์ ์ ๋งํผ for loop ๋๋ฆฌ๋ฉด์ ์ฒซ๋ฒ์งธ ๋จ์ด์ ๋น๊ตํ๊ธฐ
(์ด๋ฏธ ์ํ๋ฒณ ์์ผ๋ก ๋จ์ด ์ ๋ ฌ์ด ๋์ด์์ผ๋ฏ๋ก ๋ง์ง๋ง ๋จ์ด ๊ธฐ์ค์ผ๋ก ๋น๊ตํ๋ ๊ฒ์ด ํจ์จ์ !)
def get_prefix(strs):
if len(strs) == 0:
return ''
res = ''
strs = sorted(strs)
for i in strs[0]:
if strs[-1].startswith(res+i):
res += i
else:
break
return res