프로그래머스 : 저주의 숫자 3

Digeut·2023년 3월 12일
0

프로그래머스

목록 보기
22/164

❔문제설명

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

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

⚠️제한사항

1 ≤ n ≤ 100

🤔아이디어

3진법이라고 처음에는 생각했다가 숫자 예시를 보니, 순차적으로 증가하다가 3의 배수거나 3이 포함된 경우 그냥 다음 숫자로 넘어가는 규칙이 보인다..!

❌틀린코드

class Solution {
    public int solution(int n) {
        int answer = 0;
        for(int i = 0 ; i < n ; i ++){
            answer ++;
            if(i%3==0 || String.valueOf(answer).contains("3")){
                answer++;
            }
        }
        return answer;
    }
}

🙄오류

❌틀린코드2

class Solution {
    public int solution(int n) {
        int answer = 0;
        for(int i = 0 ; i < n ; i ++){
            answer ++;
            while(i%3==0 || String.valueOf(answer).contains("3")){
                answer++;
            }
        }
        return answer;
    }
}

🙄오류2

for문의 경우가 너무 많아서 그런가 시간초과가 걸렸다..for문 말고 다른걸 써야하나??

💡코드풀이

class Solution {
    public int solution(int n) {
        int answer = n;
        int num = 1;
        while(num <= answer){
            if((num%3==0)|| String.valueOf(num).contains("3")){
                answer++;
            } 
            num++;
        }
        return answer;
    }
}
profile
개발자가 될 거야!

0개의 댓글