Code-kata -1

hazel's·2022년 4월 11일
0

TIL

목록 보기
2/2
post-thumbnail

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

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

예를 들어,

nums은 [4, 9, 11, 14] target은 13

nums[0] + nums[1] = 4 + 9 = 13 이죠?

그러면 [0, 1]이 return 되어야 합니다.

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

내 코드

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

설명들은 뒤 수정

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

console.log(twoSum([4, 9, 11, 14],13));

for문에 모든 요소를 체크하고, for문을 사용해서 그다음부터 시작해서 찾아낸다.
i와 j를 리스트형태로 반환한다. 처음에는 j를 1로 했다...근데 배열이 더 많을 수 있고 배열이 다를 경우를 생각하지 못했다...
i와 j열 리스트에서 index i와 j의 합이 target과 같은 13일 경우 숫자 index를 배열에 담아 리턴한다.

profile
좋아하는 것을 하나하나 채워가면 행복해질꺼야

0개의 댓글

관련 채용 정보