본문 바로가기
코딩테스트 문제풀이(Python)

백준 11170번 문제풀이 (파이썬)

by chanfficial 2022. 5. 29.

11170. 0의 개수

 

 

N부터 M까지의 수들을 종이에 적었을 때 종이에 적힌 0들을 세는 프로그램을 작성하라.
예를 들어, N, M이 각각 0, 10일 때 0을 세면 0에 하나, 10에 하나가 있으므로 답은 2이다.

 

 

 

입력 : 첫 번째 줄에 테스트 케이스의 수 T가 주어진다.

          각 줄에는 N과 M이 주어진다.

  • 1 ≤ T ≤ 20
  • 0 ≤ N ≤ M ≤ 1,000,000

출력 : 각각의 테스트 케이스마다 N부터 M까지의 0의 개수를 출력한다.

 

 

ex)

입력 :

3
0 10
33 1005
1 4

출력 :

2
199
0

 

 

 

 

 

풀이

t = int(input())

for i in range(t):
    n, m = map(int, input().split())
    zero = 0
    for i in range(n, m+1, 1):
        if '0' in str(i):
            zero += str(i).count('0')
    print(zero)

- 입력받은 테스트 케이스의 개수만큼 반복하며 숫자 n과 m을 입력받아, n 부터 m+1 까지 1씩 증가하며 반복하는 반복문을 생성했다.  이때 조건문을 사용하기 편하도록 정수 i 를 str()을 사용하여 문자열로 변환했다.

만약 n 과 m+1 사이의 문자 i 에 '0' 이 포함되어 있다면, count() 를 사용하여 그 문자에 있는 '0' 의 개수를 변수 zero 에 더하게 했고, 반복문이 끝난 다음 이를 출력했다.