JAVA #5_1 : 구글 입사 문제; 1~10000 사이에 8의 개수를 구하시오

반응형

구글 입사 문제; 1~10000 사이에 8의 개수를 구하시오.

ex) 8888 -> 8개수 = 4개

코딩도장 풀이 보기에서 발췌한 답안입니다

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class blog{
 
    public static void main(String[] args) {
 
          int cnt = 0;
 
          for(int i = 1; i < 10000; i++ ) {
                if( i % 10 == 8 ) cnt++;
                if( (i / 10) % 10 == 8 ) cnt++;
                if( (i / 100) % 10 == 8 ) cnt++;
                if( (i / 1000) % 10 == 8 ) cnt++;
            }
            
          System.out.println(cnt);
    }
    
}
 
cs

 

 

각 숫자의 자릿수에서 숫자가 8인지 검사해 cnt++하는 동작을 실행시키는 풀이입니다.

7888을 검사한다면 i%10에서 8이 나머지로 나와 cnt=1되고

두번째 검사 (i / 10) % 10 에서 788/10 의 나머지 8이 나와 cnt+=1으로 cnt=2 가 누적됩니다.

위와 같은 검사를 1~10000 까지 반복하면 정답은 아래와 같습니다

 

 

반응형