알고리즘
[algorithm] 백준 14912 - 숫자 빈도수 (파이썬)
hyuuny
2022. 7. 8. 12:32
📚 문제
입력
- 자연수 n (1 ≤ n ≤ 100,000)과 한 자리 숫자 d(0~9)가 첫째 줄에 주어진다.
출력
- 첫째 줄에 빈도수를 출력한다.
입력 예시 1
11 1
출력 예시 1
4
입력 예시 2
100 3
출력 예시 2
20
🧑🏻💻 풀이 과정
- 1부터 입력받은
n
까지 1씩 증가시키다가d
가 포함된 숫자를 발견하면, 빈도수를 증가시키자. - 이때, 숫자가 두 자릿수 이상이면 문자로 변환하여
count
함수의 결과 값만큼 더하고, 한 자릿수면 그냥 1을 더하자. - list(str(i)) : 10이면 ['1', '0']으로 변환되고, 11이면 ['1', '1']으로 변환된다.
import sys
n, d = map(int, sys.stdin.readline().split())
cnt = 0
for i in range(1, n + 1):
# d가 포함될 때, i가 두 자릿수 이상이면 i를 문자로 변환하여 카운트를 구하고, 한 자릿수면 카운트를 1 더하자.
if str(i).count(str(d)) > 0:
if i > 9:
# list(str(i)) : 10이면 ['1', '0']으로 변환된다.
cnt += list(str(i)).count(str(d))
else:
cnt += 1
print(cnt)