[ 문제 ]
더보기
twoSum함수에 숫자배열과 '특정 수'를 인자로 넘기면, 더해서 '특정 수'가 나오는 index를 배열에 담아 return
- nums: 숫자 배열
- target: 두 수를 더해서 나올 수 있는 합계
- return: 두 수의 index를 가진 숫자 배열
예)
var nums = [4, 9, 11, 14]
var target = 13
nums[0] + nums[1] = 4 + 9 = 13 이므로,
return 값은 [0, 1]
* target으로 보내는 합계의 조합은 배열 전체 중에 2개 밖에 없다고 가정한다
[ 풀이 ]
2020.04.06
함수 형태가 nums[i] + nums[j] = target으로 나와야 하니, 처음에는 for문을 두 번 돌릴 생각을 했지만, 많이 써보지 않았던 forEach를 활용하기로 했다.
const twoSum = (nums, target) => {
var answer = [];
for (var i = 0; i<nums.length; i++) {
nums.forEach ( function(n) {
if (n + nums[i] === target) {
// console.log(i);
answer.push(i);
// console.log(answer);
}
})
}
return answer;
}
var nums = [4, 9, 11, 14];
var target = 13;
twoSum(nums, target);
이 방법 외에도 for in 문을 두 번 돌려 더 간단하게 코드를 작성할 수도 있는 것 같다.
'■ 프로그래밍 > 알고리즘' 카테고리의 다른 글
[JS] Isograms (0) | 2020.11.06 |
---|---|
[JS] 가장 넓은 면적 구하기 (0) | 2020.04.17 |
[JS] 문자의 첫번째 위치 반환하기 (0) | 2020.04.05 |
[JS] 가장 긴 단어 찾기 (0) | 2020.04.04 |
[JS] Object를 활용한 성적 가져오기 (0) | 2020.03.31 |