[C++] 백준 11170번: 0의 개수

be_clever·2022년 1월 5일
0

Baekjoon Online Judge

목록 보기
11/172

문제 링크

11170번: 0의 개수

문제 요약

N부터 M까지 수를 나열했을 때, 0의 개수를 모두 세야한다.

접근 방법

M이 100만 정도밖에 되지 않는 것에 비해서 시간 제한은 3초나 됩니다. 따라서 구간 내의 모든 수를 문자열로 변환을 해준 다음에 0을 직접 세도 문제가 없습니다.

std::to_string을 이용하면 수를 문자열로 바꿀 수 있습니다.

string to_string (int val);
string to_string (long val);
string to_string (long long val);
string to_string (unsigned val);
string to_string (unsigned long val);
string to_string (unsigned long long val);
string to_string (float val);
string to_string (double val);
string to_string (long double val);

std::to_string은 C++ 레퍼런스에 나와 있듯이 다른 다양한 자료형에도 사용할 수 있습니다.

코드

#include <bits/stdc++.h>

using namespace std;

int main(void)
{
	int t;
	cin >> t;

	while (t--)
	{
		int n, m, res = 0;
		cin >> n >> m;

		for (int i = n; i <= m; i++)
			for (auto& j : to_string(i))
				if (j == '0')
					res++;

		cout << res << '\n';
	}

	return 0;
}
profile
똑똑해지고 싶어요

0개의 댓글