[문제풀이] 배열 안 숫자의 연산 값 찾기 / TIL # 39

velg·2021년 9월 15일

문제풀이

목록 보기
3/12

Code Kata

문제

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

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

# 가정
target으로 보내는 합계의 조합은 배열 전체 중에 2개 밖에 없다고 가정하겠습니다.

나의 풀이

const recursion = (curIdx, nums, target) => {
  for(let i= curIdx; i < nums.length; i++) {
    if(nums[curIdx] + nums[i+1] == target) return [curIdx, i + 1];
  }
  return recursion(curIdx+1, nums, target);
}

const twoSum = (nums, target) => recursion(0, nums, target)
  • 배열의 첫 인덱스부터 끝 인덱스까지 순회하기 위해 for문을 작성
  • 첫번 째 값의 인덱스가 0 일때 나올 수 있는 모든 수를 확인
    -> but. [1,1][2,3]와 같이 첫번째 값이 다른 인덱스 일 때는 확인 x
  • 재귀적으로 함수를 구성해 첫 값이 nums[curIdx] 일때 찾지 못했을 경우 다시 recursion 함수를 return하는 방식으로 해결하였다
profile
초보 개발자

0개의 댓글