티스토리 뷰

 

가벼운 나머지 연산으로 해결할 수 있는 문제라 본다.

 

using System;

public class Solution {
    public int solution(int order) {
        int answer = 0;
        
        for(;order > 0; order /= 10){
            int trim = (order % 10);
            if(trim != 0 && trim % 3 == 0) answer++;            
        }
        
        return answer;
    }
}

 

문제를 해결하며 잠시 난항을 겪은 부분은 끝자리가 0일 경우를 생각하지 못 했었던 것이다.

3으로 나머지 연산을 하여 0이 되면 횟수를 올리는 로직에서 애초에 0이 입력된다는 생각을 못해버려서 일어난 참사였다.

 

예를 들어보자.

주어진 수 : 30

30 % 10 = 0
0 % 3 == 0

위 예시와 같이 끝자리가 0이라면 3의 배수가 아니어도 정답이 되어버리는 것이다.

이를 위해 0일 경우를 대비한 조건도 추가했다.

 

금방 추리해서 해결한 것이 다행이다.

최근에 올라온 글
최근에 달린 댓글
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함