[TIL]_Code Kata (day1)

quokkaยท2021๋…„ 10์›” 18์ผ
0

Algorithm - codekata

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

๐ŸŒˆ ๋งค์ผ ์•„์นจ 10์‹œ์—์„œ 11์‹œ๊นŒ์ง€ code kata(์•Œ๊ณ ๋ฆฌ์ฆ˜) ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ๋ฌธ์ œ ํ‘ธ๋Š” ๋Šฅ๋ ฅ์„ ๊ธฐ๋ฅด๊ณ  ์ƒ๊ฐํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ง„๋‹ค.

  • ์ •๋‹ต ๋งž์ถ”๊ธฐ
  • ์ปดํ“จํŒ… ์‚ฌ๊ณ  / ๋ฌธ์ œ ํ•ด๊ฒฐ ์—ญ๋Ÿ‰ ๋ณด์—ฌ์ฃผ๊ธฐ
  • pair programming / communication / driver & navigator
  • ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ, ์ƒ๊ฐํ•˜๋Š” ๋กœ์ง์„ ์ •ํ™•ํ•œ ์šฉ์–ด์™€ ํ•จ๊ป˜ ๋ง๋กœ ์„ค๋ช…ํ•˜๋Š” ์—ฐ์Šต

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

nums: ์ˆซ์ž ๋ฐฐ์—ด
target: ๋‘ ์ˆ˜๋ฅผ ๋”ํ•ด์„œ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” ํ•ฉ๊ณ„
return: ๋‘ ์ˆ˜์˜ index๋ฅผ ๊ฐ€์ง„ ์ˆซ์ž ๋ฐฐ์—ด

์˜ˆ๋ฅผ ๋“ค์–ด,
nums: ์ˆซ์ž ๋ฐฐ์—ด
target: ๋‘ ์ˆ˜๋ฅผ ๋”ํ•ด์„œ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” ํ•ฉ๊ณ„
return: ๋‘ ์ˆ˜์˜ index๋ฅผ ๊ฐ€์ง„ ์ˆซ์ž ๋ฐฐ์—ด

์˜ˆ๋ฅผ ๋“ค์–ด,
nums์€ [4, 9, 11, 14] target์€ 13

nums[0] + nums[1] = 4 + 9 = 13 ์ด์ฃ ?

๊ทธ๋Ÿฌ๋ฉด [0, 1]์ด return ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

target์œผ๋กœ ๋ณด๋‚ด๋Š” ํ•ฉ๊ณ„์˜ ์กฐํ•ฉ์€ ๋ฐฐ์—ด ์ „์ฒด ์ค‘์— 2๊ฐœ ๋ฐ–์— ์—†๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๐Ÿคฏ ์›๋ž˜ ์ž‘์„ฑํ•œ ์ฝ”๋“œ

const twoSum = (nums, target) => {
	for(let i=0; i<nums.length; i++) {
   for(let j=i+1; j<nums.length; j++) { 

๐Ÿ‘‰ ์ฒ˜์Œ์— ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ  ์ค‘์ฒฉfor๋ฌธ์„ ๋Œ๋ ค์„œ i์™€ i์— ๋”ํ•˜๊ธฐ 1์„ ํ•ด์„œ j๋ฅผ ๊ตฌํ•˜๋Š” ์‹์€ ์ƒ๊ฐ์„ ํ–ˆ์ง€๋งŒ ๋‹ค์Œ๋ถ€ํ„ฐ๋Š” ๋จธ๋ฆฟ์†์ด ํ…… ๋น„๋ฉด์„œ ์•„๋ฌด ์ƒ๊ฐ์ด ๋“ค์ง€ ๋ชปํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์—ฌ๋Ÿฌ๊ฐ€์ง€๋ฅผ ์ฐพ์•„๋ณด๊ณ  ๋ฌผ์–ด๋ณธ ๊ฒฐ๊ณผ ์ •๋‹ต์„ ๋„์ถœํ•ด๋ƒˆ๋‹ค. ๐Ÿ‘‡

โœ๏ธ ๋ฌธ์ œ ํ’€์ด
๐Ÿ‘‰ ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ  ์ƒ๊ฐํ–ˆ์„ ๋•Œ ๋ฐฐ์—ด์— ์žˆ๋Š” ์ˆซ์ž๋“ค ์ค‘์—์„œ ์ˆซ์ž ๋‘๊ฐœ์˜ ํ•ฉ์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.
๐Ÿ‘‰ nums๋ฐฐ์—ด์— [4, 9, 11, 14]๋ผ๋ฉด

  • 4+9, 4+11, 4+14
  • 9+11 9+14
  • 11+14
  for(let i=0; i<nums.length; i++) {
    for(let j=i+1; j<nums.length; j++){
      if(nums[i]+nums[j] === target) { //nums[i,j]->์—†๋‹ค.๊ทธ๋ƒฅ ์—†๋‹ค.์•„๋ฌด์˜๋ฏธ ์—†๋‹ค. ์ง€์™„๋‹˜ํ”ผ์…œ,nums[i+j]->index๋งŒ ๋”ํ•œ๊ฒƒ 
        return [i,j]; // nums[i,j]-> ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•œ๊ฒƒ, 
      }
    }
  }
}
twoSum([4, 9, 11, 14],13);
profile
๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป ๋งค์ผ๋งค์ผ์ด ๊ธฐ๋Œ€๋˜๋Š” ๊ฐœ๋ฐœ์ž ^^

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