twoSum 함수의 매개변수에 (숫자배열, 특정 수) 를 인자로 넘긴다.
숫자배열 내 요소 2개가 더한 값이 특정 수와 일치하게 된다면,
그 숫자배열 요소 인덱스 번호를 배열로 반환해라.
twoSum 함수의 매개변수는 (nums, target) 이다
nums 엔 숫자배열이, target엔 특정수를 넘겨줄 것이다 👇🏻
const numbers = [4, 9, 11, 14]
const twoSum = (nums, target) => {
for (let i = 0; i < nums.length; i++) {
for (let j = 0; j < nums.length; j++) {
if (nums[i] + nums[j] === target) {
return [i, j];
}
}
}
}
console.log(twoSum(numbers, 13));
// [0, 1]
첫 떠올린 필수로직은, 숫자배열내의 아무개 인덱스요소 두개가 target과 같아야 한다는 것이다.
=> if (nums[i] + nums[j] === target)
숫자배열에서 2개의 요소가 순회하면서 더해줘보면서 if 조건과 같은지 봐야 하기 때문에,
for 문을 먼저 썼다. (2개의 요소여서 for문 중첩사용)
i가 먼저 들어가면, j가 다 순회하고 target과 일치하면 종료
일치하지 않으면 다시 나와서 다음 인덱스 요소로 i가 들어가서 다시 j로 배열 순회
return 으로 배열형태를 반환해주었다!
const numbers = [4, 9, 11, 14, 1, 5, 8]
const twoSum = (nums, target) => {
let result = [];
for (let i = 0; i < nums.length; i++) {
for (let j = 0; j < nums.length; j++) {
if (nums[i] + nums[j] === target) {
result.push(i);
result.push(j);
return result;
}
}
}
}
console.log(twoSum(numbers, 20));
// [ 1, 2 ]
짝꿍과 금방 푸러버렸당 🤭
이 아니고 코테 낙점 ㅡㅡ 된다고 한다 이건
map() 메소드로 시도해봤으나 폭이