TIL 23 - 코드카타 01

crystalee·2021년 7월 19일
0

codeKata

목록 보기
1/1
post-thumbnail

💻 문제

twoSum함수에 숫자배열과 '특정 수'를 인자로 넘기면, 더해서 '특정 수'가 나오는 index를 배열에 담아 return해 주세요.
nums: 숫자 배열 target: 두 수를 더해서 나올 수 있는 합계 return: 두 수의 index를 가진 숫자 배열
예를 들어, 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 = i + 0; j <  nums.length; j++){
      if(nums[i] + nums[j] == target){
        return [i,j];
      }
    }
  }
}

👉 2개의 합이라 for문을 2개 사용해서 i for문과 i를 제외한 나머지 j for문을 더했을때 값이 target과 같다면 i와 j를 반환한다.

동기님 풀이

function twoSum(nums,target){
  for(let i = 0; i<nums.length; i++){
    for(let j = 0; j < nums.length; j++){
      if(nums[i] + nums[j] == target && i<j && i!==j){
        return [i,j];
      }
    }
  }
}

👉 if문에서 i보다 j가 크고 i와 j는 값이 다르다는 조건을 사용하고 조건이 true이면
i와 j를 반환한다.

❗️마치며

역시 사람마다 풀이 방법은 다양하게 많았고 풀이 방법을 같이 고민하고 의견을 주고 받으니 새로운 방식을 많이 배웠다.😊

profile
코린이 성장일기

1개의 댓글

comment-user-thumbnail
2021년 7월 25일

크으... 갓수정..

답글 달기