ํจ์์ ์ซ์๋ฐฐ์ด๊ณผ 'ํน์ ์'๋ฅผ ์ธ์๋ก ๋๊ธฐ๋ฉด,
๋ํด์ 'ํน์ ์'๊ฐ ๋์ค๋ index๋ฅผ ๋ฐฐ์ด์ ๋ด์ returnํด ์ฃผ์ธ์.
nums์ [4, 9, 11, 14] target์ 13
nums[0] + nums[1] = 4 + 9 = 13 ์ด์ฃ ?
๊ทธ๋ฌ๋ฉด [0, 1]์ด return ๋์ด์ผ ํฉ๋๋ค.
๋ฐฐ์ด์ ์ธ๋ฑ์ค ๊ฐ์ ํ๋์ฉ ๋๋ ค๊ฐ๋ฉด์ ๋๊ฐ์ ๋ฐฐ์ด์ ์ธ๋ฑ์ค๊ฐ์ ๋ํ์๋ target=13๊ณผ ๊ฐ์ผ๋ฉด,
๋ฐฐ์ด์ ๊ฐ์ return ์์ผ๋ผ.
๋ผ๊ณ ๋ฌธ์ ๋ฅผ ์ดํดํ๊ณ for๋ฌธ๊ณผ if๋ฌธ์ ์ฌ์ฉํด์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๋ค.
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]
nums์ ์ฒซ๋ฒ์งธ ์ธ๋ฑ์ค๋ถํฐ ์ฐจ๋ก๋๋ก ๊ฐ์ ธ์ค๊ธฐ ์ํด for๋ฌธ์ ์ด์ฉํด์
i๋ num์ ๋ฐฐ์ด์ ๊ธธ์ด๋ณด๋ค ์๋ค๋ผ๊ณ ์ง์ ํ๊ณ ๋ง๋ค๋ฉด i๋ฅผ ์ฆ๊ฐ์์ผฐ๋ค.
์ฒ์์ ์ฝ๋๋ฅผ ๋ค๋ฃฐ๋ nums[i]+nums[i+1]์ด๋ผ๋ ์กฐ๊ฑด์ if๋ฌธ์ ๋ฃ์ด์ ์์ฑํ๋ค.
๊ทผ๋ฐ ๋ด๊ฐ๋ด๋ ์กฐ๊ธ ์ด์ํ๊ณ , ์๋ํด๋ณด๊ณ ์๋ฌ๊ฐ ๋์ ์กฐ๊ฑด์ ์์ ํ๋ค๊ฐ
์์ ์ ๋ฐ๋ณต๋ฌธ ๋ฐฐ์ฐ๋ฉด์ ๊ตฌ๊ตฌ๋จ๋ง๋ค๋ ์์ฑํ๋ ๋ฐฉ๋ฒ์ด ์๊ฐ๋ฌ๋ค.
์๋ nums[i+1] ์์ฑํ๋ ๊ฑธ j๋ผ๋ ์กฐ๊ฑด์ ๋ง๋ค์ด์ ์์ฑํด๋ดค๊ณ ,
๋คํ์ด๊ฒ๋ ๊ฒฐ๊ณผ๋ ๋์๋ค.
ํ์ง๋ง ๋ฌดํ๋ฃจํ์ ๊ฑธ๋ ธ๋์ง ํ
์คํธ๋ ๊ณ์ ๋์๊ฐ๊ธฐ๋ง ํ๊ณ
ํ
์คํธ ํต๊ณผ๋ ๋์ง์๊ณ ..
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 ๊ฐ์ ์ฃผ์ด์ ๋ฌดํ๋ฃจํ๊ฐ ๊ฑธ๋ฆฌ๋ ๊ฒ์ ๋ฐฉ์งํ๋ค.
๊ทธ๋ฌ๋๋ ํ
์คํธ ํต๊ณผใ