JavaScript - 알고리즘 twoSum

Moolbum·2021년 11월 16일
0

JavaScript

목록 보기
5/18
post-thumbnail
post-custom-banner

문제1

twoSum함수에 숫자배열과 '특정 수'를 인자로 넘기면, 더해서 '특정 수'가 나오는 index를 배열에 담아 return해 주세요.

nums : 숫자 배열
target : 두 수를 더해서 나올 수 있는 합계
return : 두 수의 index를 가진 숫자 배열

ex)
nums은 [4, 9, 11, 14]
target은 13
nums[0] + nums[1] = 4 + 9 = 13

const twoSum = (nums, target) => {

  }
}

let nums = [4, 9, 11, 14];
let target = 13;

해결방법

const twoSum = (nums, target) => {
  for(let i = 0; i < nums.length-1; i++){
    for(let j = i+1; i < nums.length; i++){
      if(nums[i] + nums[j] === target){
        return [i, j];
      }
    }
  }
}

let nums = [4, 9, 11, 14];
let target = 13;
console.log(twoSum(nums,target)); // [0, 1]

for(let i = 0; i < nums.length-1; i++){
  for(let j = i+1; i < nums.length; i++){
   if(nums[i] + nums[j] === target){
    return [i, j];
}

for문을 두번 사용한 이유는 배열안의 두 숫자를 비교하기 위해서다.
if문에서 nums[i],nums[j] 를 더해 target 인자와 같은 숫자가 나온다면
return으로 배열의 index를 구할 수 있다.[i,j]

profile
Front-End Developer 👨‍💻
post-custom-banner

0개의 댓글