티스토리 뷰

📚 문제

입력

  • 자연수 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)
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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 31
글 보관함