문제
지민이는 N쪽인 책이 한권 있다. 첫 페이지는 1쪽이고, 마지막 페이지는 N쪽이다. 각 숫자가 모두 몇 번이 나오는지 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.
출력
첫째 줄에 0이 총 몇 번 나오는지, 1이 총 몇 번 나오는지, ..., 9가 총 몇 번 나오는지를 출력한다.
예제 입력과 출력
알고리즘 분류
수학
브루트 포스
재귀 호출
탐색
정답
import sys
n=int(sys.stdin.readline().strip())
a=[0]*10
b=1
while n != 0:
while n % 10 != 9:
for i in str(n):
a[int(i)] += b
n -= 1
if n < 10:
for k in range(n+1):
a[k] += b
a[0] -= b
break
else:
for i in range(10):
a[i] += (n//10 + 1) * b
a[0] -= b
b *= 10
n //= 10
for i in a:
print(i,end=' ')
백준 알고리즘 1019번 : www.acmicpc.net/problem/1019
'알고리즘 > 백준알고리즘' 카테고리의 다른 글
백준알고리즘 - 2747번 피보나치 수 - 파이썬(Python) (0) | 2020.06.14 |
---|---|
백준알고리즘 - 1463번 1로 만들기 - 파이썬(Python) (0) | 2020.06.14 |
백준알고리즘 - 2110번 공유기 설치 - 파이썬(Python) (0) | 2020.06.13 |
백준알고리즘 - 2512번 예산 - 파이썬(Python) (0) | 2020.06.13 |
백준알고리즘 - 10816번 숫자 카드 2 - 파이썬(Python) (0) | 2020.06.13 |