Code Kata_day1

🙋🏻‍♀️·2022년 5월 9일
0

wecode

목록 보기
26/40

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개 밖에 없다고 가정하겠습니다.



✔️pass 코드

const twoSum = (nums, target) => {
 for (let i=0; i<nums.length; i++) {
  for (j=i+1; j<nums.length; j++) {
  if (nums[i] + nums[j] === target) {
  return [i, j]
   }
  }
 }
 }
 console.log(twoSum([4, 9, 11, 14],13)

✍️문제풀이

코드카타 첫번째 날! 첫 날인데 문제가 꽤나 어렵다^^ㅎ하하
다행히 코드카타 짝꿍인 수연님이 열일해주셔서 해답을 도출할 수 있었다.
그리고 나의 구원자 구글을 통해 문제를 이해하는데에 큰 도움을 얻었다!




숫자가 담긴 배열과 어떤 숫자가 있다.
예를들어서 [4, 9, 11, 14],13 이 인자로 들어간다면 저 배열 중 어떤 수를 더해야 13이 나올까?
바로 4 + 9이다.

target의 숫자와 nums 배열 중 두 숫자의 합을 비교해야 하기 때문에
nums의 배열 중 두 숫자의 합이 될 수 있는 경우의 수를 비교하기 위해 for문을 사용할 것이다.
그런데 두 수의 합이므로 첫번째 숫자가 될 수 있는 경우의 수 + 2번째 숫자가 될 수 있는 경우의 수를 더해야 하므로 for문을 2번 돌려야함.
그리고 이 for문 안에서 nums[i]+nums[j]가 target 값과 같을 경우 i와 j를 return한다.

0개의 댓글