[프로그래머스] Lv.0 저주의 숫자 3

·

1 min read

[프로그래머스] Lv.0 저주의 숫자 3

문제

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

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

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


(출처) https://school.programmers.co.kr/learn/courses/30/lessons/120871

전체 코드

function solution(n) {
    let i = 0;
    let res = 0;

    while (i < n) {
        res++;
        if (res % 3 === 0 || String(res).includes("3")) continue;
        i++;
    }

    return res;
}
  • while 루프가 한 번 실행될 때마다 res는 무조건 1씩 증가한다.

  • 그리고 나서 OR 연산자를 이용해 res가 3의 배수이거나 숫자 3을 포함하는지를 검사한다.

    • 만약 res가 3의 배수이거나 숫자 3을 포함하면, continue 문을 사용하여 i++를 건너뛰고 다음 루프로 넘어간다.

    • 그렇지 않으면, i++를 실행.

  • 결과적으로, res는 루프가 한 번 실행될 때마다 항상 1씩 증가하지만, i는 조건을 만족할 때만 증가한다.