관리 메뉴

NineTwo meet you

[백준/자바] 1019 책 페이지 본문

프로그래밍 문제/백준

[백준/자바] 1019 책 페이지

NineTwo 2020. 12. 28. 17:24
반응형

출처


설명

수학으로 해결하는 문제였지만 고민 끝에 해결하지 못했고 백준 님의 설명을 참고하여 해결할 수 있었다.

1부터 n까지가 아닌 A부터 B까지 각 숫자가 몇 번 나오는 지의 문제로 바꿔서 해결한다.

여기서 A의 일의 자리는 0이 되어야 하며 아니면 A++로 맞춰준다.

여기서 B의 일자리는 9여야 하며 아니면 B--로 맞춰준다.

맞추는 과정에서 지나온 일의 자리수를 ++해준다.

 

맞춰준 후에는 A부터 B까지 일의 자리에 0부터 9는 총 (B/10 - A/10 + 1) 번 등장한다.

A = 10, B = 39인 경우에

B/10 - A/10 + 1 = 39/10 - 10/10 + 1 = 3 - 1 + 1 = 3번 등장한다.

10 11 12 13 14 15 16 17 18 19
20 21 22 23 24 25 26 27 28 29
30 31 32 33 34 35 36 37 38 39

이제 A /= 10 과 B /= 10을 해 다시 A의 일의 자리와 B의 일의 자리를 각각 0과 9로 다시 맞춰준다.

 

여기서도 A = 10, B = 39인 경우에 B/10 - A/10 + 1 = 39/10 - 10/10 + 1 = 3 - 1 + 1 = 3번 등장할까?

아니다.

10 11 12 13 14 15 16 17 18 19
20 21 22 23 24 25 26 27 28 29
30 31 32 33 34 35 36 37 38 39

에서 10은 사실 100, 101,... 109를 의미하기 때문에 (B/10 - A/10 + 1)*10번 등장한다.

A /= 10 과 B /= 10 해서 백의 자리를 계산하는 경우에는 (B/10 - A/10 + 1)*100번 등장한다.

코드

반응형

'프로그래밍 문제 > 백준' 카테고리의 다른 글

[백준/자바] 2711 오타맨 고창영  (0) 2020.12.28
[백준/자바] 1074 Z  (0) 2020.12.28
[백준/자바] 10610 30  (0) 2020.12.24
[백준/자바] 12904 A와 B  (0) 2020.12.24
[백준/자바] 2875 대회 or 인턴  (0) 2020.12.24
Comments