Solution 1) 내 풀이
class Solution {
    public int solution(int n) {
        int answer = 0;
        int cnt = 0;

        while (cnt != n) {
            answer++;
            cnt++;
            if (Integer.toString(answer).contains("3") || answer % 3 == 0) {
                cnt--;
            }
        }
        return answer;
    }
}

 

Solution 2) 다른 사람의 풀이
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;
    }
}

 

코드 및 문제 리뷰
3x 마을의 수로 주어진 수 n을 표현하는 문제이다. 3x 마을은 3과 관련 된 수를 모두 없앤 마을이기에 3의 배수 및 3이 들어간 수는 제외하여 반환해야한다.

나는 cnt 변수를 만들어 3x 마을의 요건에 맞지 않다면 마이너스를 해가며 n의 수치를 맞춰나갔다.
다른 사람의 풀이를 보니 변수를 굳이 만들 필요 없이도 해결할 수 있는 문제였다.

로직을 생각해냈을 때 바로 구현해낸 풀이였는데, 조금만 더 생각해보고 더 좋은 코드를 만들 수 있게 해야겠다.

 

 

+ Recent posts