티스토리 뷰
가벼운 나머지 연산으로 해결할 수 있는 문제라 본다.
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일 경우를 대비한 조건도 추가했다.
금방 추리해서 해결한 것이 다행이다.
'코딩테스트 > Programmers' 카테고리의 다른 글
[Programmers] 입문) 합성수 찾기 (조건문) (0) | 2023.06.28 |
---|---|
[Programmers] 입문) 숫자 찾기 (0) | 2023.06.28 |
[Programmers] 입문) 피자 나눠 먹기 (2) (최소공배수) (0) | 2023.06.28 |
[Programmers] 입문) 배열 회전시키기 (Shift Array) (0) | 2023.06.28 |
[Programmers] 입문) 외계행성의 나이 (아스키코드) (0) | 2023.06.28 |