관리 메뉴

cococo-coding

11170번. 0의 개수 본문

[BOJ] 코드 모음/C++_learning 문제집

11170번. 0의 개수

_dani 2024. 1. 2. 15:16


최종 코드

#include <iostream>
#include <string> //to_string을 이용하기 위해
using namespace std;

/*
1. 테스트케이스 수 t를 입력받는다.
2. n과 m을 입력받는다.
3. n과 m까지의 숫자 중 0의 개수를 센다.
4. 0의 개수를 출력한다.
*/

int main() {

    int t;
    cin >> t;

    while (t--) {
        int n = 0, m = 0, cnt = 0;
        cin >> n >> m;
        //3
        for (int i = n; i <= m; i++) {
            string s = to_string(i);

            for (int j = 0; j < s.size(); j++) {
                if (s[j] == '0') cnt++;
            }
        }
        cout << cnt << endl;
    }

    return 0;
}

 

코드 설명

알고리즘은 굉장히 간단한데 0의 개수를 어떻게 셀지가 고민이었다.

구글링을 해보니 많은 분들이 to_string함수를 사용하여 숫자를 문자열로 변환시켜준 뒤에 0의 개수를 세는 방식을 사용하더라. 

그래서 위의 코드처럼 int형을 string으로 변화시킨 후에, 인덱스를 사용해 0번째부터 끝까지 검사하여 0이 있으면 cnt값을 증가시켜주었다.