티스토리 뷰

https://www.acmicpc.net/problem/1019
책 페이지

 

1019번: 책 페이지

첫째 줄에 0이 총 몇 번 나오는지, 1이 총 몇 번 나오는지, ..., 9가 총 몇 번 나오는지를 공백으로 구분해 출력한다.

www.acmicpc.net

 

풀이

https://www.slideshare.net/Baekjoon/baekjoon-online-judge-1019?qid=9aa7818e-779e-499a-9c13-d2a5ac2ef8af&v=&b=&from_search=1

 

Baekjoon Online Judge 1019번 풀이

Baekjoon Online Judge 1019번 풀이 - Download as a PDF or view online for free

www.slideshare.net

// https://www.acmicpc.net/problem/1019
// 책 페이지
const input: number = +require('fs').readFileSync('./dev/stdin').toString().trim();
const nums = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
let start = 1;
let end = input;
let mul = 1;

function calc(num: number, mul: number) {
	while (num > 0) {
		nums[num % 10] += mul;
		num = Math.floor(num / 10);
	}
}

while (start <= end) {
	while (start % 10 !== 0 && start <= end) {
		calc(start, mul);
		start++;
	}

	while (end % 10 !== 9 && end >= start) {
		calc(end, mul);
		end--;
	}
	if (start > end) break;
	start = Math.floor(start / 10);
	end = Math.floor(end / 10);

	for (let i = 0; i < 10; i++) {
		nums[i] += (end - start + 1) * mul;
	}
	mul *= 10;
}

console.log(nums.join(' '));
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함