[ TIL 30 ] Code Kata - day1

_dodo_heeยท2021๋…„ 3์›” 30์ผ
0

ALGORITHM

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

Code Kata ๋ฌธ์ œ ๐Ÿ“œ

ํ•จ์ˆ˜์— ์ˆซ์ž๋ฐฐ์—ด๊ณผ 'ํŠน์ • ์ˆ˜'๋ฅผ ์ธ์ž๋กœ ๋„˜๊ธฐ๋ฉด,
๋”ํ•ด์„œ 'ํŠน์ • ์ˆ˜'๊ฐ€ ๋‚˜์˜ค๋Š” index๋ฅผ ๋ฐฐ์—ด์— ๋‹ด์•„ returnํ•ด ์ฃผ์„ธ์š”.

nums์€ [4, 9, 11, 14] target์€ 13
nums[0] + nums[1] = 4 + 9 = 13 ์ด์ฃ ?
๊ทธ๋Ÿฌ๋ฉด [0, 1]์ด return ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ๋ฅผ ์ดํ•ดํ•ด๋ณด์ž ๐Ÿง

๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค ๊ฐ’์„ ํ•˜๋‚˜์”ฉ ๋Œ๋ ค๊ฐ€๋ฉด์„œ ๋‘๊ฐœ์˜ ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๊ฐ’์„ ๋”ํ–ˆ์„๋•Œ target=13๊ณผ ๊ฐ™์œผ๋ฉด,
๋ฐฐ์—ด์˜ ๊ฐ’์„ return ์‹œ์ผœ๋ผ.
๋ผ๊ณ  ๋ฌธ์ œ๋ฅผ ์ดํ•ดํ•˜๊ณ  for๋ฌธ๊ณผ if๋ฌธ์„ ์‚ฌ์šฉํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

Code Kata ์ฒซ๋ฒˆ์งธ ์‹œ๋„ ๐Ÿ’ก

const twoSum = (nums, target) => {
  // ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.
  for(let i=0; i < nums.length; i++){
    for(let j=1; i < j; j++){
      if(nums[i]+nums[j]===target){
        return [i,j];
      }
    }
  }
}

console.log(twoSum([4,9,11,14],13));

// [0,1]

์ฒซ๋ฒˆ์งธ ์‹œ๋„ review โœ๏ธ

nums์˜ ์ฒซ๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด for๋ฌธ์„ ์ด์šฉํ•ด์„œ
i๋Š” num์˜ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ณด๋‹ค ์ž‘๋‹ค๋ผ๊ณ  ์ง€์ •ํ•˜๊ณ  ๋งž๋‹ค๋ฉด i๋ฅผ ์ฆ๊ฐ€์‹œ์ผฐ๋‹ค.

์ฒ˜์Œ์— ์ฝ”๋“œ๋ฅผ ๋‹ค๋ฃฐ๋• nums[i]+nums[i+1]์ด๋ผ๋Š” ์กฐ๊ฑด์„ if๋ฌธ์— ๋„ฃ์–ด์„œ ์ž‘์„ฑํ–ˆ๋‹ค.
๊ทผ๋ฐ ๋‚ด๊ฐ€๋ด๋„ ์กฐ๊ธˆ ์ด์ƒํ–ˆ๊ณ , ์‹œ๋„ํ•ด๋ณด๊ณ  ์—๋Ÿฌ๊ฐ€ ๋‚˜์„œ ์กฐ๊ฑด์„ ์ˆ˜์ •ํ•˜๋‹ค๊ฐ€
์˜ˆ์ „์— ๋ฐ˜๋ณต๋ฌธ ๋ฐฐ์šฐ๋ฉด์„œ ๊ตฌ๊ตฌ๋‹จ๋งŒ๋“ค๋•Œ ์ž‘์„ฑํ–ˆ๋˜ ๋ฐฉ๋ฒ•์ด ์ƒ๊ฐ๋‚ฌ๋‹ค.
์›๋ž˜ nums[i+1] ์ž‘์„ฑํ–ˆ๋˜ ๊ฑธ j๋ผ๋Š” ์กฐ๊ฑด์„ ๋งŒ๋“ค์–ด์„œ ์ž‘์„ฑํ•ด๋ดค๊ณ ,
๋‹คํ–‰์ด๊ฒŒ๋„ ๊ฒฐ๊ณผ๋Š” ๋‚˜์™”๋‹ค.

ํ•˜์ง€๋งŒ ๋ฌดํ•œ๋ฃจํ”„์— ๊ฑธ๋ ธ๋Š”์ง€ ํ…Œ์ŠคํŠธ๋Š” ๊ณ„์† ๋Œ์•„๊ฐ€๊ธฐ๋งŒ ํ•˜๊ณ 
ํ…Œ์ŠคํŠธ ํ†ต๊ณผ๋„ ๋˜์ง€์•Š๊ณ ..

Code Kata ๋‘๋ฒˆ์งธ ์‹œ๋„ ๐Ÿ’ก

const twoSum = (nums, target) => {
  // ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.
  let arr = [];
  for(let i=0; i < nums.length; i++){
    for(let j=i+1; j < nums.length; j++){
      if(nums[i]+nums[j]===target){
        return [i,j];
      }
    }
  } return arr;
}

console.log(twoSum([4,9,11,14],13));

์ฒซ๋ฒˆ์งธ ์‹œ๋„์—์„œ ๋ฌดํ•œ ๋ฃจํ”„๊ฐ€ ๊ฑธ๋ฆฐ ์ด์œ ๊ฐ€ j๋ฅผ ์–ผ๋งˆ๋งŒํผ ๋ฐ˜๋ณตํ•ด์ค„์ง€ ์ •ํ•ด์ฃผ์ง€ ์•Š์•„์„œ
๊ณ„์† j๊ฐ’์ด ๋Š˜์–ด๋‚˜๋‹ˆ๊นŒ ์•„๋งˆ๋„ ๋ฌดํ•œ๋ฃจํ”„๊ฐ€ ๊ฑธ๋ฆฐ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜์—ˆ๋‹ค.
๊ทธ๋ž˜์„œ j๊ฐ’์—๋„ nums.length ๊ฐ’์„ ์ฃผ์–ด์„œ ๋ฌดํ•œ๋ฃจํ”„๊ฐ€ ๊ฑธ๋ฆฌ๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ–ˆ๋‹ค.
๊ทธ๋žฌ๋”๋‹ˆ ํ…Œ์ŠคํŠธ ํ†ต๊ณผใ…Ž

profile
๋ฌด๋Ÿญ๋ฌด๋Ÿญ ์ž๋ผ๋‚˜๋Š” ๋„๋„ ๊ฐœ๋ฐœ์„ฑ์žฅ์ผ๊ธฐ

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