For Beginners

2577번: 숫자의 개수 본문

2577번: 숫자의 개수

728x90

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

 

2577번: 숫자의 개수

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

www.acmicpc.net

100이상, 1000미만의 수를 가지고 곱하기를 한 다음에 각 자릿수에 사용된 숫자의 개수를 출력하는 일을 한다.

음 아마도 이거는 배열을 사용하는게 좋을것같다.

음 다른 좋은 방법이 있을 수도 있긴한데,

빠른 솔류션 도출로는 일단 곱한 다음에 각자릿수를 string으로 해서 바꾼 다음에 확인하는게 제일 좋은 방법일 것 같다.

음 더 좋은 방법이 있었다

그냥 나머지 연산자를 이용해서 10씩 나누는건데,

이거는 타 블로그들의 알고리즘을 읽다가 그냥 문득 떠올라서 적었다.

#include <iostream>
#include <string>
using namespace std;
int main() {
	
	int A, B, C = 0;
	int arr[10] = { 0, };
	cin >> A >> B >> C;
	long long int total=0;
	total = A * B * C;
	
	while (total) {
		arr[total % 10]++;
		total = total / 10;
	}

	for (int i = 0; i < 10; i++) {
		cout << arr[i] << endl;
	}
		   
	return 0;
}