[코드타카]week1(1)- twoSum

JH Cho·2022년 8월 29일
0

알고리즘

목록 보기
3/12
post-thumbnail

풀이

업로드중..

  • 풀이1)
let arr = [9,11,4,14]

const twoSum = (arr, target) => {
  let answer = []
  for (i = 0; i < arr.length; i++) {
    if (arr.indexOf(target - arr[i]) > -1) {
      answer.push(i)
      answer.push(arr.indexOf(target - arr[i]))
    }
  } return answer.slice(0, 2);
}

빈 배열을 두고 target에서 arr[i]를 빼준 값을 indexOf를 이용해서 만족하는 결과를
배열에 push해줬다. 이렇게 하면 배열 길이 4가 나와서 첫 두 요소를 slice 해줬음.

slice를 이용 안할 수 있을까 고민 후 return을 if문 블록 내에 위치시키고
조건을 만족하면 바로 반환하게 하였음.

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

결과는 성공.

  • 풀이2)
const twoSum = (arr, target) => {
  for (i = 0; i < arr.length; i++) {
    if (arr.indexOf(target - arr[i]) > -1) {
      let result = [i, arr.indexOf(target - arr[i])];
      return result;
    }
  }
}

그냥 빈 배열에 push하지 않고 바로 해당 index들을 배열에 넣어서 result로 반환.

가장 깔끔

반성 :
아직 메서드를 활용하는게 잘 떠오르지 않는다. 여러 메서드를 자주 쳐보면서 복습하는 시간도 가져야겠다.

profile
주먹구구식은 버리고 Why & How를 고민하며 프로그래밍 하는 개발자가 되자!

0개의 댓글