[ Code Kata ] ๐Ÿคฏ๐Ÿฅต Python #5 ๊ณตํ†ต๋œ ์‹œ์ž‘ ๋‹จ์–ด ์ฐพ๊ธฐ

Haileeยท2020๋…„ 12์›” 7์ผ
0

[ Code Kata ]

๋ชฉ๋ก ๋ณด๊ธฐ
11/28
post-thumbnail

๋‚˜๋Š”์•ผ ๋ฌธ์ œ ๋ง‰ํ’€๊ธฐ์˜ ๋Œ€๊ฐ€ ํ•˜๋žŒ์“ฐ~~

์˜ค๋Š˜์˜ ๋ฌธ์ œ๋Š” ๊ณตํ†ต๋œ ์‹œ์ž‘ ๋‹จ์–ด ์ถœ๋ ฅํ•˜๊ธฐ..!

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 ๋Œ๋ฆฌ๋ฉด์„œ ์ฒซ๋ฒˆ์งธ ๋‹จ์–ด์™€ ๋น„๊ตํ•˜๊ธฐ
    (์ด๋ฏธ ์•ŒํŒŒ๋ฒณ ์ˆœ์œผ๋กœ ๋‹จ์–ด ์ •๋ ฌ์ด ๋˜์–ด์žˆ์œผ๋ฏ€๋กœ ๋งˆ์ง€๋ง‰ ๋‹จ์–ด ๊ธฐ์ค€์œผ๋กœ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์ด ํšจ์œจ์ !)

model solution

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
profile
์›น ๊ฐœ๋ฐœ ๐Ÿท๐Ÿ˜Ž๐Ÿ‘Š๐Ÿป๐Ÿ”ฅ

0๊ฐœ์˜ ๋Œ“๊ธ€