혜랑's STORY

[BOJ_C++] 11170번 : 0의 개수 본문

무지성 공부방/알고리즘 해결

[BOJ_C++] 11170번 : 0의 개수

hyerang0125 2021. 8. 8. 15:33

code

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <algorithm>
#include <cstring>
#include <stack>
#include <vector>
#include <cmath>
#include <string>

using namespace std;

int sum(int list[], int start, int end) {
    int sum = 1;
    for (int i = start; i <= end; i++)
        sum *= list[i];
    return sum;
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int T; cin >> T;
    int n, m, cnt;
    string temp;
    for (int tc = 0; tc < T; tc++) {
        cin >> n >> m;
        cnt = 0;
        for (int i = n; i <= m; i++) {
            temp = to_string(i);
            for (int i = 0; i < temp.size(); i++) {
                if (temp[i] == '0') ++cnt;
            }
        }
        printf("%d\n", cnt);
    }


    return 0;
}
  • n과 m 사이에 있는 수 중 0의 개수를 모두 구하는 문제이다.
  • for문을 통해 n부터 m까지 숫자를 string으로 변환하여 '0'이 존재하면 cnt를 1 증가시켜 준다.
  • 이때 0이 아닌 '0'으로 비교하는 이유는 '0'이 0을 char로 표현한 것이기 때문이다.
  • 각 테스트 케이스의 cnt를 출력하고 프로그램을 종료한다.

결과