[백준/BOJ] 백준 2577번 : 숫자의 개수

2020. 8. 2. 15:04알고리즘 문제풀이

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

 

2577번: 숫자의 개수

첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 같거나 크고, 1,000보다 작은 자연수이다.

www.acmicpc.net

정수의 곱을 문자열로 바꾼 뒤, 문자열의 문자를 처음부터 끝까지 확인하며 어떤 숫자가 몇 번 쓰였는지 센다.

 

코드

#include <iostream>
#include <string>
#include <cstring>
using namespace std;

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

	int a, b, c;
	string result;
	int num[10];

	memset(num, 0, sizeof(num));

	cin >> a >> b >> c;

	//정수의 곱을 string형으로 바꾼다
	result = to_string(a * b * c);

	//result 문자열의 문자를 처음부터 끝까지 확인하며 어떤 숫자가 몇번 쓰였는지 센다
	for (int i = 0; i < result.size(); i++)
	{
		//result.substr(i, 1)를 이용해 i번째 문자를 떼어내고, stoi를 이용해 정수형으로 바꾼다
		num[stoi(result.substr(i, 1))]++;
	}

	for (int i = 0; i <= 9; i++)
	{
		cout << num[i] << "\n";
	}

	return 0;
}