C++

[백준 알고리즘] 11170번 : 0의 개수, c++

2022. 3. 1. 13:04

https://www.acmicpc.net/problem/11170

 

11170번: 0의 개수

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

www.acmicpc.net

c++로 백준 11170번 문제를 풀어보겠다.

 

 

 

 

 

문제

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

예제 입력 1 복사

3
0 10
33 1005
1 4

예제 출력 1 복사

2
199
0

 

 

 

 

<문제 풀이>

 

 

처음에 작성한 코드는 다음과 같다.

 

 

 

 

visual studio에서는 원하는 대로 출력됐지만, 백준 사이트에서는 "틀렸습니다"라고 떴다.

이를 해결하기 위해 더 간단하게 코드를 작성했다.

int 형으로 입력받은 값을 string으로 변환해 더 계산하기 쉽도록 만들었다.

 

 

1. T를 선언한 후 입력받는다.

2. for문을 T번 반복하며 0의 개수를 T번 출력한다.

 

- for 반복문 코드 내용 -

N과 M을 입력받는다.

N부터 M까지 for문을 반복하며 0의 개수를 계산한다.

    (int 형의 숫자를 string형으로 바꾼 후, string에 '0'의 개수가 몇 개인지 계산한다.)

계산한 count값을 한 줄에 출력한다.