TIL _ Code Kata _ for문 중첩 활용

옥원철·2021년 10월 18일
0

Javascript

목록 보기
10/17
post-thumbnail
post-custom-banner

❓문제

  • 숫자 배열(nums)과 특정 숫자(target)을 인자로 받아,
  • 더했을 때 특정 숫자(target)가 나오는 숫자 배열(nums) 내 두 요소의 index를 배열에 담아서 return
const twoSum = (nums, target) => { }


1. 해결 방안


  • 사고 과정

🔓 (문제 파악) nums로 받은 숫자 배열에서 두 개의 요소들을 짝지어 더한다.
🔑 (해결 방안) for문을 활용하되, 반복되는 요소가 2개이므로 for문을 중첩해서 사용

→ nums의 첫 번째 요소 + nums의 두 번째 요소
→ nums의 첫 번째 요소 + nums의 세 번째 요소
...
→ nums의 첫 번째 요소 + nums의 마지막 요소
→ nums의 두 번째 요소 + nums의 세 번째 요소(= nums의 두 번째 요소 + 1)
...
→ nums의 마지막-1번째 요소 + nums의 마지막 요소

const twoSum = (nums, target) => {
  for (i = 0; i < nums.length; i++) {
    for (j = i + 1; j < nums.length; j++) { // 두 번째 항(j)의 시작은 항상 i보다 1이 큼
      let sum = nums[i] + nums[j];
    }
  }
}

🔓 (문제 파악) 두 요소의 합이 target과 일치하는지 확인하고, 일치할 경우 각 요소의 index를 배열로 반환한다
🔑 (해결 방안) if 조건문으로 일치 여부를 확인하여, true일 때 각 요소의 인덱스 값인 ij를 배열로 return

const twoSum = (nums, target) => {
  for (i = 0; i < nums.length; i++) {
    for (j = i + 1; j < nums.length; j++) { // 두 번째 항(j)의 시작은 항상 i보다 1이 큼
      let sum = nums[i] + nums[j];
      if(sum === target) {
        return [i, j];
      }
    }
  }
}



2. 결과





"작성 내용 중 오류나 오타가 있다면, 댓글로 알려주시면 감사하겠습니다. 주니어 개발자에게 남겨주시는 작은 피드백이 큰 도움이 될 것 같습니다. 고맙습니다 :)"

profile
Obtainment Of The Day
post-custom-banner

0개의 댓글