반응형
구글 입사 문제; 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 까지 반복하면 정답은 아래와 같습니다
반응형
'코딩공부 > JAVA' 카테고리의 다른 글
JAVA #6 : 10~1000까지 각 숫자 분해하여 곱하기의 전체 합 구하기 (1) | 2022.05.23 |
---|---|
JAVA #5_2 : 구글 입사 문제; 1~10000 사이에 8의 개수를 구하시오 (0) | 2022.05.20 |
JAVA #4 : While문과 Math.random()을 이용한 UP&DOWN 게임 제작 (0) | 2022.05.18 |
JAVA #3 : Format 명령어를 이용한 숫자의 자릿수 출력하기 (0) | 2022.05.17 |
JAVA #2 : Switch문을 이용한 학점 계산기 (0) | 2022.05.13 |