๐ ๋งค์ผ ์์นจ 10์์์ 11์๊น์ง code kata(์๊ณ ๋ฆฌ์ฆ) ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ๋ฌธ์ ํธ๋ ๋ฅ๋ ฅ์ ๊ธฐ๋ฅด๊ณ ์๊ฐํ๋ ์๊ฐ์ ๊ฐ์ง๋ค.
๐ 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]๋ผ๋ฉด
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);