개발하는 고양이 오이

29. [JAVA] 프로그래머스 코딩테스트 연습 Level.0. - 369게임 / 3번 실패 해결 본문

코딩테스트 - JAVA/프로그래머스 Programmers

29. [JAVA] 프로그래머스 코딩테스트 연습 Level.0. - 369게임 / 3번 실패 해결

Cucum 2022. 12. 8. 08:57

https://programmers.co.kr/learn/challenges

 

코딩테스트 연습 | 프로그래머스 스쿨

개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!

school.programmers.co.kr

프로그래머스 코딩테스트 연습 Level.0 - 369게임



풀이

class Solution {
    public int solution(int order) {
        int answer = 0;
        
        if (order % 10 == 0) {
            answer = 0;
        } 
        else {
            while (order != 0) {
                if ((order % 10) % 3 == 0) {
                    answer++;
                }
                order = order / 10;
            }
        }
        
        return answer;
    }
}

풀이 방법

10으로 나눠준 나머지가 3으로 나눴을 때도 0이 될 때, answer값을 +

이때 10으로 나눈 몫이 0이 될 때까지 while문 진행


(풀이 실패 과정)

class Solution {
    public int solution(int order) {
        int answer = 0;

        while (order != 0) {
            if ((order % 10) % 3 == 0) {
                answer++;
            }
            order = order / 10;
        }
    
        return answer;
    }
}

실패 이유

= 10으로 나눠준 나머지 값을 이용하여 3,6,9를 체크하고 있었는데. 10으로 나눴을 때 나머지가 바로 0이 될 때를 고려하지 않았음.

ex) 10, 1000, 10000