정수 배열 nums
와 정수 target
이 주어질때, nums
의 두 요소의 합이 target
이 되는 두 인덱스를 배열에 담아 리턴하라. 순서는 상관없다.
각 입력은 정확히 하나의 해답만 있고 같은 요소를 두 번 사용하지 않는다.
Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].
Input: nums = [3,2,4], target = 6
Output: [1,2]
Input: nums = [3,3], target = 6
Output: [0,1]
var twoSum = function(nums, target) {
for(let i=0; i<nums.length; i++) {
if(nums.includes(target - nums[i], i+1)) {
return [i, nums.indexOf(target - nums[i], i+1)]
}
}
};
nums
배열을 첫 번째 요소부터 순차적으로 접근한다.
그리고target
과 현재 요소의 차를 구한다.
그 값이 다음 인덱스 이후부터 존재하는지 확인해서(includes
이용) 존재한다면
현재 인덱스와 그 값의 인덱스(indexOf
이용)를 배열에 담아서 리턴한다.
includes
와indexOf
메소드 사용시 두 번째 파라미터에 인덱스를 전달하여 해당 인덱스부터 검색할 수 있다.