[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에 더해 줍니다.

 

 

■ 또 다른 방법

위의 방법보다 좀 더 고급지기도 한  

메소드 안에서 메소드 호출을  까지 하면서

최대한 활용 해주는 멋진 방법입니다.

반응형

BELATED ARTICLES

more