백준 algorithm

백준 2577 - 숫자의 개수

cosmohoo 2019. 9. 6. 14:45
반응형

문제 설명 

0부터 9까지의 숫자가 몇번 나왔는지 확인하기위해 size 10짜리의 배열을 만든다. 

A B C 세 숫자를 곱하였을 때 나오는 수의 자릿수들을 하나씩 확인하여야한다. 
10으로 나눴을때의 나머지를 구하게 되면 1의 자리부터 맨 마지막 자리수의 숫자까지 확인할수 있다. 
나머지 수를 확인하고 그 수의 숫자를 배열에 넣게 된다. 

 

*각 자리 숫자들을 확인할때 for문을 돌리기 위해서 숫자의 끝부분을 알아야하므로 숫자의 길이를 알아내야한다.

 

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
	int bae[10] = { 0 };
	int a, b, c = 0;
	cin >> a >> b >> c;
	int sum = a * b*c;
	int sum2 = sum;
	int count = 0;
	while (sum2 > 0) // 숫자의 길이 알아내기 위함
	{
		sum2 = int(sum2 / 10);
		count++;
	}
	for (int i = 0; i < count; i++) //각 자리 숫자를 하나씩 빼내어 확인하기
	{
		int index;
		index = sum % 10;
		bae[index]++;
		sum = sum / 10;
	}
	for (int j = 0; j < 10; j++)
	{
		cout << bae[j] << endl;
	}
}
반응형