본문 바로가기
파이썬 코딩테스트

백준 11170번 - 0의 개수 (파이썬/Python)

by 준벨롭 2024. 1. 31.

문제

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의 개수를 출력한다.

답안

# 내 풀이

t = int(input())

for _ in range(t):
    a, b = map(int, input().split())
    lst = []
    for i in range(a, b+1): # a부터 b까지
        lst.append(str(i)) # lst에 str으로 바꿔서 넣어준다.
    word = ''.join(lst) # lst의 값들을 이어붙힌다.
    print(word.count('0')) # 이어붙힌 값에서 0을 센다.
    
# 다른사람 풀이

for _ in range(int(input())):
    a, b = map(int, input().split())
    li = []
    for i in range(a, b+1):
        li.append(i)
    convert_string = ''.join(str(k) for k in li)
    print(convert_string.count('0'))

후기

아래 풀이는 보다 간결하고 빠르고 메모리도 적다.

문자열, 숫자열에 익숙하고, join에 대해서 잘 알아야 풀수 있는 문제이다.

728x90