# Level 0. 가까운 수

가까운 수

문제 설명

정수 배열 array와 정수 n이 매개변수로 주어질 때, array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요.

제한사항

문제 풀이

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function solution(array, n) {
  let closest;
  let gap = Infinity;
  array.forEach((num) => {
    const currGap = Math.abs(num - n);
    if (currGap < gap) {
      closest = num;
      gap = currGap;
    } else if (currGap === gap && num < closest) {
      closest = num;
    }
  });
  return closest;
}

# Level 0. 369게임

369게임

문제 설명

머쓱이는 친구들과 369게임을 하고 있습니다. 369게임은 1부터 숫자를 하나씩 대며 3, 6, 9가 들어가는 숫자는 숫자 대신 3, 6, 9의 개수만큼 박수를 치는 게임입니다. 머쓱이가 말해야하는 숫자 order가 매개변수로 주어질 때, 머쓱이가 쳐야할 박수 횟수를 return 하도록 solution 함수를 완성해보세요.

제한사항

문제 풀이

1
2
3
function solution(order) {
  return order.toString().match(/3|6|9/g)?.length || 0;
}

# Level 0. 문자열 정렬하기 (1)

문자열 정렬하기 (1)

문제 설명

문자열 my_string이 매개변수로 주어질 때, my_string 안에 있는 숫자만 골라 오름차순 정렬한 리스트를 return 하도록 solution 함수를 작성해보세요.

제한사항

문제 풀이

1
2
3
4
function solution(my_string) {
  const numbers = my_string.match(/[0-9]/g).map((num) => num * 1);
  return numbers.sort((a, b) => a - b);
}

# Level 0. 숨어있는 숫자의 덧셈 (1)

숨어있는 숫자의 덧셈 (1)

문제 설명

문자열 my_string이 매개변수로 주어집니다. my_string안의 모든 자연수들의 합을 return하도록 solution 함수를 완성해주세요.

제한사항

문제 풀이

1
2
3
4
5
function solution(my_string) {
  const numbers = my_string.match(/[0-9]/g).map((num) => num * 1);
  const sum = numbers.reduce((acc, curr) => acc + curr);
  return sum;
}

# Level 0. 소인수분해

소인수분해

문제 설명

소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 _ 2 _ 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.

제한사항

첫번째 풀이

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
const checkIsPrime = (number) => {
  for (let j = 2; j <= Math.floor(Math.sqrt(number)); j++) {
    if (number % j === 0 && number !== j) return false;
  }

  return true;
};

const getPrimesUnderNumber = (limitNumber) => {
  const primes = [2];

  for (let i = 3; i <= limitNumber; i++) {
    checkIsPrime(i) && primes.push(i);
  }

  return primes;
};

const solution = (n) => {
  const answer = [];
  const primes = getPrimesUnderNumber(n);

  let index = 0;
  while (primes[index] <= n) {
    if (n % primes[index] === 0) {
      answer.push(primes[index]);
    }
    index++;
  }

  return answer;
};