하얀성 2023. 8. 31. 16:36

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

10진법 3x 마을에서 쓰는 숫자 10진법 3x 마을에서 쓰는 숫자
1 1 6 8
2 2 7 10
3 4 8 11
4 5 9 14
5 7 10 16
정수 n이 매개변수로 주어질 때, n을 3x 마을에서 사용하는 숫자로 바꿔 return하도록 solution 함수를 완성해주세요.

제한사항
1 ≤ n ≤ 100
입출력 예
n result
15 25
40 76
입출력 예 설명
입출력 예 #1

15를 3x 마을의 숫자로 변환하면 25입니다.
입출력 예 #2

40을 3x 마을의 숫자로 변환하면 76입니다.

function solution(n) {
    let answer;
    let count=0;
    let count2=0;
    for(let i=1; i<=n; i++){
        answer = i;
        let a = String(i);
        if(a.includes("3") || a.includes("6") || a.includes("9") || a % 3 == 0){
            count++;
        }
    }
    for(let i=1; i<=n+count; i++){
        answer = i;
        let a = String(i);
        if(a.includes("3") || a.includes("6") || a.includes("9") || a % 3 == 0){
            count2++;
        }
    }   
    return n + count2
}



스포라고 되어있던 코드 자바인 코드에서 자스로 바꿔서 돌렸는데 안되는거 실화인가; 심지어 테스트2도 통과못하는...


이 문제 알고보니, 단순히 3이랑 3이 포함되는 문자열만 찾으면됨.
3의 배수(6,9) 포함된 문자열은 그대로 두는듯함.

<정답>

unction solution(n) {
    let count = 0;
    let i = 1;

    while (true) {
        let a = String(i);

        if (a.includes("3") || i % 3 === 0) {
            i++;
            continue;
        }

        if (++count === n) {
            return i;
        }

        i++;
    }
}