Javascript - 저주의 숫자 3

이율곡·2023년 7월 14일

Programmers

목록 보기
31/44
post-thumbnail

저주의 숫자3

문제

3x 마을 사람들은 3을 저주의 숫자라고 생각하기 때문에 3의 배수와 숫자 3을 사용하지 않습니다. 3x 마을 사람들의 숫자는 다음과 같습니다.

10진법3x 마을에서 쓰는 숫자10진법3x 마을에서 쓰는 숫자
1168
22710
34811
45914
571016

정수 n이 매개변수로 주어질 때, n을 3x 마을에서 사용하는 숫자로 바꿔 return하도록 solution 함수를 완성해주세요.

입출력 예

nresult
1525
4076

접근방법

이 문제의 핵심은 3 또는 3의 배수를 피하면서 주어진 숫자 n을 세어가는 것이다. 그렇기 떄문에 1부터 n까지의 수를 세면서 3 또는 3의 배수가 나오면 값을 패스하는 로직이 필요하다.

  1. 0부터 시작하는 number를 둠.
  2. 10진법의 n을 감소하는 반복문을 돎.
  3. number를 증가 시키면서 3이 포함되거나 3의 배수일 경우 패스.
  4. 최종적으로 값을 반환.

풀이

function solution(n) {
    let answer = '';
    let number = 0;
    while (n > 0) {
        number++;
        if (number % 3 === 0 || String(number).indexOf('3') >= 0) {
            continue;
        }
        answer = number;
        n--;
    }
    return answer;
}

풀이를 보면, while문을 사용해서 n을 하나씩 감소시켰다. 조건문은 증가시킨 number가 3포함, 3의 배수일 경우에는 패스하도록 하고 최종적으로는 값을 반환했다.


정리하기

이번 문제는 number라는 새로운 변수를 두고 풀면 쉽게 풀 수 있는 부분이었다. Lv.0 문제는 반복문과 조건문의 로직을 잘 만들면 다른 사람도 이해할 수 있는 풀이를 만들 수 있다.

profile
음악을 좋아하는 사람이 음악을 만들 듯, 개발을 좋아하게 될 사람이 쓰는 개발이야기

0개의 댓글