
if문 조건을 채우는 빈칸 문제였는데, current /= 10; 코드가 이해가 안가서 또 한참 봤다.. 인텔리제이에 코드 넣어서 디버깅을 돌렸더니 이해가 됐다.
current가 증가하는 부분이 어디지? 했는데 for문의 i++이 있었고,
current/= 10;은 자리수를 바꾸는 부분인데 9 이하의 숫자일 경우 0이 되어 while문을 빠져나가 i++이 된다.
class Main { public int solution(int number) { int count = 0; for (int i = 1; i <= number; i++) { int current = i; int temp = count; while (current != 0) { if (current%10==3 || current%10==6 || current%10==9){ //빈칸이었던 부분 count++; } current /= 10; } } return count; }
<테스트 케이스>
// 아래는 테스트케이스 출력을 해보기 위한 main 함수입니다. public static void main(String[] args) { Main sol = new Main(); int number = 40; int ret = sol.solution(number); System.out.println("solution 메소드의 반환 값은 " + ret + " 입니다."); } }