Blog

저주의 숫자 3

문제 #

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

나의 풀이 #

class Solution {
    public int solution(int n) {
        int answer = 0;
        int dec = 0;
        
        while(dec < n){
            answer++;
            String temp = answer+"";
            if(!temp.contains("3") && answer%3!=0)
                dec++;
        }
        
        return answer;
    }
}
// 사용하지 않는 숫자일경우 dec값을 증가하지 않음으로 반복횟수를 늘림
class Solution {
    public int solution(int n) {
        int answer = 0;
        int dec = 0;
        
        while(dec < n){
            answer++;
            if(!String.valueOf(answer).contains("3") && answer%3!=0)
                dec++;
        }
        
        return answer;
    }
}

다른 사람의 풀이 #

// 사용하지 않는 숫자일경우 i값을 감소시켜 반복횟수를 늘리는 방식
class Solution {
    public int solution(int n) {
        int answer = 0;

        for (int i = 1; i <= n; i++) {
            answer++;
            if (answer % 3 == 0 || String.valueOf(answer).contains("3")) {
                i--;
            }
        }

        return answer;
    }
}
// 사용하지 않는 숫자일경우 n값을 증가시켜 반복횟수를 늘리는 방식
class Solution {
    public int solution(int n) {
        
        for (int i = 1; i <= n; i++){
            if(String.valueOf(i).contains("3") || i%3 == 0)
                n++;
        }
        
        return n;     
    }
}

관련개념 학습 #