728x90
문제
1부터 n까지 차례대로 써 내려갈 때 특정 숫자(digit)의 빈도수를 구하여 출력하는 프로그램을 작성하시오.
예를 들어, n = 11 이고 숫자 1의 빈도수를 구하라고 하면, 1 2 3 4 5 6 7 8 9 10 11 에서 숫자 1은 1에서 한 번, 10에서 한 번, 11에서 두 번 나타나므로 1의 빈도수는 총 4 이다.
https://www.acmicpc.net/problem/14912
입력
자연수 n (1 ≤ n ≤ 100,000)과 한 자리 숫자 d(0~9)가 첫째 줄에 주어진다.
출력
첫째 줄에 빈도수를 출력한다.
예제
# input
11 1
# output
4
# input
100 3
# output
20
문제 풀이
n, d = input().split()
n = int(n)
answer = 0
for i in range(1, n+1):
# i를 문자열로 변환 후, d의 등장 횟수를 셈
answer += str(i).count(d)
print(answer)
파이썬을 독학하시는 분들에게 도움이 되길 바라며,
혹 더 좋은 방법이 있거나 오류가 있다면 편하게 말씀 부탁드립니다.
728x90