[TIL]_CodeKata (#8)

quokkaยท2021๋…„ 11์›” 4์ผ
0

Algorithm - codekata

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

๐ŸŒˆ Code Kata [๋ฌธ์ œ ํ•ด๊ฒฐ๋Šฅ๋ ฅ ๊ธฐ๋ฅด๊ธฐ]

๐ŸŒ€๋ฌธ์ œ

์ธ์ž์ธ height๋Š” ์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„๋กœ ์ƒ๊ฐํ•œ๋‹ค๋ฉด y์ถ•์˜ ๊ฐ’์ด๊ณ , ๋†’์ด ๊ฐ’์„ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์•„๋ž˜์˜ ๊ทธ๋ž˜ํ”„๋ผ๋ฉด height ๋ฐฐ์—ด์€ [1, 8, 6, 2, 5, 4, 8, 3, 7] ์ž…๋‹ˆ๋‹ค.
์ € ๊ทธ๋ž˜ํ”„์— ๋ฌผ์„ ๋‹ด๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ , ๋ฌผ์„ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๋„“์€ ๋ฉด์ ์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ด์ฃผ์„ธ์š”.

โžก๏ธ ์ฒ˜์Œ ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ  ์ „ํ˜€ ์ดํ•ดํ•˜์ง€ ๋ชปํ–ˆ์—ˆ๋‹ค... ๊ทธ๋ƒฅ ๊ฐ€๋กœ ์„ธ๋กœ ๊ณฑํ•ด์„œ ๋ถ€ํ”ผ๋ฅผ ๊ตฌํ•˜๋ฉด ๋˜๋Š”๊ฑฐ ์•„๋‹Œ๊ฐ€..?? ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ... ์—ญ์‹œ ์•„๋‹ˆ์—ˆ๋‹ค.. ๊ฐ€๋กœ ์„ธ๋กœ๋กœ ํ•œ์นธ์”ฉ ๋„“์ด๋ฅผ ๊ตฌํ•ด๊ฐ€๋ฉด์„œ ๊ทธ๋ž˜ํ”„์— ๋ฌผ์— ๋„˜์น˜์ง€ ์•Š๊ฒŒ ํ•ด์•ผํ•œ๋‹ค.

๐Ÿคฏ ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ ๐Ÿ˜ฑ

function getMaxArea(height) {
  for (let i=0; i<height.length; i++) {
    for(let j=i+1; j<height.length; j++) {
    }
  }
}

๐Ÿ‘‰ ๊ทธ๋ƒฅ ์ค‘์ฒฉ for๋ฌธ ๋ฐ–์— ์ƒ๊ฐ๋‚˜์ง€ ์•Š์•˜๋‹ค.... goo์„ ์ƒ๋‹˜๊ป˜ ๋ฌผ์–ด๋ด์„œ ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•ด์•ผ์ง€ํ•˜๊ณ  ๋งˆ์Œ ๋จน์—ˆ๋‹ค...๊ทผ๋ฐ ๋™๊ธฐ ์œ ์‹ ๋‹˜์ด ์ฝ”๋“œ๋ฅผ ์„ค๋ช…ํ•ด์ฃผ์…จ๊ณ  ์ดํ•ด ํ™• ๋˜๋ฒ„๋ ธ๋‹ค!!


โœ๏ธ ์ •๋‹ต ์ฝ”๋“œ

function getMaxArea(height) {  
  let arr = [];
  for(let i=0; i<height.length; i++) {
    let arrHeight = height[i];
    for(let j=i+1; j<height.length; j++) {
      let arrHeight2 = height[j];
      if(arrHeight < arrHeight2) {
        //์ฒซ๋ฒˆ์งธ ๋†’์ด๋ž‘ ๋‘๋ฒˆ์งธ ๋†’์ด 
        arr.push(arrHeight * (j - i));
        // ๊ฐ€๋กœ๊ฐ’ ์ˆ˜๋ฅผ ๊ตฌํ•จ
      }
      else if(arrHeight >= arrHeight2) {
        arr.push(arrHeight2 * (j - i));
      }
    }
  }
  const maxValue = Math.max(...arr); //์ตœ๋Œ€๊ฐ’ ๋ฐฐ์—ด์—์„œ ์ถ”์ถœํ•˜๋Š” ๋ฐฉ๋ฒ• 
  return maxValue;
  
}

๐Ÿ“Œ ์ฝ”๋“œ ํ•ด์„

๐Ÿ‘‰ ๋†’์ด๋Š” [1,8,6,2,5,4,8,3,7] ๋กœ ์ฃผ์–ด์กŒ์ง€๋งŒ ๊ฐ€๋กœ์˜ ๊ธธ์ด๋ฅผ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ฒซ๋ฒˆ์งธ ๋†’์ด์—์„œ ๋‘๋ฒˆ์งธ ๋†’์ด๋ฅผ ๋นผ์„œ ๊ฐ€๋กœ์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•œ๋‹ค์Œ ๋„“์ด๋ฅผ ๊ตฌํ•˜๋Š” ์‹์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์˜€๋‹ค.
๐Ÿ”ฅ ์•„์ง ๋ฌธ์ œ๋ฅผ ๋ณผ๋•Œ๋งˆ๋‹ค ๋Œ€์ฒด...์ด๊ฒŒ ๋ญ”์†Œ๋ฆฐ๊ณ ... ํ•˜๊ณ  ๋งŽ์€ ์ƒ๊ฐ์ด ๋“ค์ง€๋งŒ ํ•˜๋‚˜์”ฉ ์ฐจ๊ทผ์ฐจ๊ทผ ์ฒœ์ฒœํžˆ ๋จธ๋ฆฌ์†์— ์ง‘์–ด ๋„ฃ์œผ๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๋Š” ์ค‘์ด๋‹ค.

profile
๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป ๋งค์ผ๋งค์ผ์ด ๊ธฐ๋Œ€๋˜๋Š” ๊ฐœ๋ฐœ์ž ^^

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