본문 바로가기

백준/C++

[BaeKJoon/C++] 백준 11170 c++ 0의 개수

반응형

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

 

11170번: 0의 개수

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

www.acmicpc.net

문제

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. a부터 b까지 수들을 나열하는 for문을 작성하고

2. 그 수들을 문자열로 변환한다. = to_string(i)

3. 문자열을 문자열길이 만큼 for문으로 '0' 이라는 문자가 나오면 카운트를 한다.

코드

#include <iostream>
#include <string>
 
using namespace std;
 
int main() {
 
    int test;
    cin>>test;
 
    for(int i=0; i<test; i++){
 
    int a,b;
    cin>>a>>b;
 
    int cnt=0;
    int sum=0;
 
        for(int i=a; i<=b; i++){
            string str = to_string(i); // key point
            for(int j=0; j<str.length(); j++){
                if(str[j]=='0'){
                    cnt++;
                }
            }
        }
        cout<<cnt<<"\n";
    }
    return 0;
}
cs

 

 

반응형