CodeKata | Week 1 - Day 5

์ฝ”๋”ฉํ•˜๋Š”๋ถ•์–ดยท2021๋…„ 6์›” 25์ผ
0

์•Œ๊ณ ๋ฆฌ์ฆ˜

๋ชฉ๋ก ๋ณด๊ธฐ
5/12
post-thumbnail

๐Ÿ•ฐ strs์€ ๋‹จ์–ด๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค. ๊ณตํ†ต๋œ ์‹œ์ž‘ ๋‹จ์–ด(prefix)๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ฃผ์„ธ์š”.

์˜ˆ๋ฅผ ๋“ค์–ด
strs = ['start', 'stair', 'step']
return์€ 'st'
strs = ['start', 'wework', 'today']
return์€ ''



๐Ÿ’ก My Solution

const getPrefix = strs => {
  let sentence = strs[0];  // strs ๋ฐฐ์—ด์˜ 0๋ฒˆ์งธ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์žก์Œ

  if(strs.length === 0) {  // ๋ฐฐ์—ด์— ์•„๋ฌด๊ฒƒ๋„ ์—†์œผ๋ฉด
    return ''
  }

  for(let i = 0; i < strs.length; i++) {  // strs ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉด์„œ
    for(let j = 0; j < sentence.length; j++) {  // sentence ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉด์„œ
      if(strs[i][j] !== sentence[j]) {  // strs์˜ i๋ฒˆ์งธ ์š”์†Œ์˜ j๋ฒˆ์งธ ๊ฐ’๊ณผ sentence์˜ j ๊ฐ’์ด ๊ฐ™์ง€ ์•Š๋‹ค๋ฉด 
        sentence = strs[i].slice(0, j);  // strs ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ๋ถ€ํ„ฐ j๊นŒ์ง€ ์ž๋ฅธ๋‹ค
      }
    }
  }
  return sentence;
}



console.log ๋Œ€์ฐธ์‚ฌ;;

์ €๋ ‡๊ฒŒ ํ’€๊ณ  Run tests๋ฅผ ๋Œ๋ ค๋ดค๋Š”๋ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์— ๋นˆ ๋ฐฐ์—ด์ผ ๊ฒฝ์šฐ๋„ ์žˆ๋Š”๊ฒƒ์ด ์•„๋‹Œ๊ฐ€...!! ๋ ์š”์˜น
๊ทธ๋ž˜์„œ

if(strs.length === 0) {
  return ''
}

๋ฅผ ๋„ฃ์–ด์ฃผ์—ˆ๋‹ค!

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