[JAVA] 1부터 10,000까지 특정 숫자 개수 구하기
2023. 3. 27. 07:48
반응형
■ 문제
1부터 10,000까지 8의 개수를 구하세요 !
예전 구글 입사 문제중 하나였습니다
8이 포함되어있는 숫자 개수가 아니라
예를 들어
808 이면 , 2개
1888 이면 , 3개 입니다
숫자 8의 개수 총합을 출력하면 됩니다: D
직접 생각해 보는 게 중요합니다.
정확하게 답을 못 내더라도
어떻게 해야 할까
가볍게라도 생각하고
답안 참고해 주세요!!
■ 예시 답안
처음에 작성할때는
int 변수 a, b, c, d
배열에 넣어주고
if가 아니라 a, b ,c, d 에 값을 넣은후
for문 한번더해서
if(arr[j] == 8) sum++;
이렇게 했었는데
생각해보니
int 변수 4개 생성할 필요없이
그냥 바로 if문 한후 sum++;
해주는게더 간단하게 작성 가능하네요
String 타입으로 숫자를 전부다 더해준다음
문자 8 의 개수를 구하는 방법도 있다고 합니다!!
■ 실행 결과
■ 다른 방법
for문에서
j > 0 이랑
j /= 10 으로
10씩 나누는 방법이
있구나 신기했습니다.
각자리 별로 %10 나머지를
구해서 8인지 확인하는 방법
아래 j 사용한 for문 에서는
위에있는 i 를 그대로 가져오고
1000의 자리부터 시작해서
10씩 나누면서
100의 자리, 10의자리, 1의자리로
반복하면서 %10
10으로 나눈 나머지가 8일경우
sum에 더해 줍니다.
■ 또 다른 방법
위의 방법보다 좀 더 고급지기도 한
메소드 안에서 메소드 호출을 까지 하면서
최대한 활용 해주는 멋진 방법입니다.
반응형
'언어 > JAVA' 카테고리의 다른 글
[JAVA] 특정 시간에 사무실에 몇 명이 있었는지 구하기 (0) | 2023.03.29 |
---|---|
[JAVA] 1 ~ 20 으로 나누어지는 가장 작은 수 구하기 (0) | 2023.03.28 |
[JAVA] 5000보다 작은 셀프 넘버들의 합 구하기 (0) | 2023.03.26 |
[JAVA] 컴퓨터랑 가위 바위 보 하는 게임 만들기 (0) | 2023.03.25 |
[JAVA] 홀수와 짝수의 개수 구하기 (0) | 2023.03.24 |