-
JavaScript :: twoSum 함수알고리즘 2020. 7. 6. 11:40
< 문제 >
twoSum 함수에 숫자 배열과 '특정 수'를 일자로 넘기면,
더해서 '특정 수'가 나오는 index를 배여렝 담아 return 해주세요.
num: 숫자 배열
target: 두 수를 더해서 나올 수 있는 합계
return: 두 수의 index를 가진 숫자 배열
예를들어,
nums는 [4, 9, 11, 14]
target은 13
nums[0] + num[1] = 4 + 9 = 13 이다.
그러면 [ 0, 1 ]이 return 되어야 한다.
*가정
target으로 보내는 합계의 조합은 배열 전체 중에 2개 밖에 없다고 가정하자.먼저, target의 숫자와 nums 배열 중 두 숫자의 합을 비교해야 하기 때문에
우리는 nums의 배열 중 두 숫자의 합이 될 수 있는 경우의 수를 비교하기 위해 for문을 사용할 것이다.
그런데 두 수의 합 이므로 첫번째 숫자가 될 수 있는 경우의 수 + 2번째 숫자가 될 수 있는 경우의 수 를 더해야 함으로,
for문을 2번 돌릴 것이다.
아래와 같이 말이다.
const twoSum = (nums, target) => { for (let i = 0; i < nums.length; i++) { for (let j = i + 1; j < nums.length; j++) { } } }
그리고 이 for 문 안에서 nums[i] + nums[j]가 target값과 같을 경우 i와 j를 리턴한다.
const twoSum = (nums, target) => { for (let i = 0; i < nums.length; i++) { for (let j = i + 1; j < nums.length; j++) { if (nums[i] + num[j] === target) { return [i, j]; } } } twoSum([4, 9, 11, 14], 13);
'알고리즘' 카테고리의 다른 글
JavaScript:: 그래프의 최대 넓이 값 구하기 (0) 2020.07.17 Javascript:: 가장 자주 등장한 숫자를 k개수만큼 return (0) 2020.07.16 JavaScript:: 정수 뒤집어 return 하기 (0) 2020.07.07