[Code Kata] Week 01-01, 02

AM_I_TRASH·2022년 7월 10일

code-kata

목록 보기
1/6

Week01 - 01

숫자배열과 목표 정수값을 인자로 받았을 때, 배열 속 중복되지 않은 두 정수를 더해 '목표 정수값'이 나오게 하는 배열의 index를 return해 주세요.
예를 들어,
nums: [4, 9, 11, 14], target: 13 일 때
return값은 [0, 1]이 되어야 합니다.

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

target 값이 도출될 때 까지 모든 정수를 하나하나씩 더해보면 답이 나오겠다 싶어서
해당 문제는 전체 탐색을 하는 방향으로 이차원 배열로써 해결했다.
해결하지 못한 점은 조합이 2개 이상일 때를 대비하지 못한 것이다.


Week01 - 02

정수를 인자로 받았을 때, 그 숫자를 뒤집어서 return해주세요.
음수의 경우, 해당 부호가 유지되어야 합니다.
x: 1234일 때, return: 4321
x: -1234일 때, return: -4321
x: 1230일 때, return: 321

const reverse = (x) => {
  let arr = x.toString().split("").reverse();
  if (arr.includes("-")) {
    arr.pop();
    arr.unshift("-");
  }
  return Number(arr.join(""));
}

해당 문제는 정공법이 아닌 꼼수를 통해 해결했다.
받은 인티저값을 int -> string -> array 순으로 쪼갈라서 뒤집은 후
다시 string으로 재조립하는 과정을 통해 해결했다.
수취한 값이 음수일 경우엔 pop()과 unshift() 메소드를 통해 부호를 맨 앞으로 이동시켜 주었다.

profile
짝퉁 프로그래머

0개의 댓글