ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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);

    댓글

Designed by Tistory.