입력으로 주어진 숫자타입의 배열에서 합이 타겟(target
)이 되는 두 인덱스 배열을 리턴 (오름차순)
입력받은 숫자들을 타겟값에서 뺀다음 사전 객체<숫자, 인덱스>에 존재 하는지 여부를 판단 후 없다면 사전에 넣어주고 있으면 꺼내서 리턴하는 방법
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function (nums, target) {
const lib = {}
return nums.reduce((acc, num, idx) => {
const needNum = target - num
if (!isNaN(lib[needNum]) && !acc.length) {
return [lib[needNum], idx]
}
lib[num] = idx
return acc
}, [])
}