Training/BOJ

[C++] 2577 숫자의 개수

FATKITTY 2020. 8. 3. 17:13
반응형

 

0~9개가 각각 몇 개인지 저장할 배열 count를 만든다. (배열값들 0으로 초기화)

int A,B,C를 입력받고 long mult 변수에 곱셈결과를 저장한다.

이제 mult>0 를 만족하는 동안, mult%10 을 구한 뒤 mult 를 10으로 나눠주는 과정을 반복한다.

mult%10 이 0~9 중 무엇인지 switch문을 통해서 판단 후 배열의 해당되는 원소 값을 증가시켜준다.

ex) mult%10 == 1 이면 count[1]++,  mult%10 == 5 면 count[5]++. mult/=10 후 앞의 과정 반복.

mult 가 다 나눠지고 0이 되면 count 배열의 원소들을 차례대로 출력한다.

 

#include <iostream>
using namespace std;

int main()
{
	int A = 0, B = 0, C = 0;
	long mult = 0;
	int* count = new int[10];
	for (int i = 0; i < 10; i++) count[i] = 0;

	cin >> A >> B >> C;
	mult = A * B * C;
	
	while (mult > 0) {
		long re = mult % 10;
		mult /= 10;

		switch (re)
		{
		case 0:
			count[0]++;
			break;
		case 1:
			count[1]++;
			break;
		case 2:
			count[2]++;
			break;
		case 3:
			count[3]++;
			break;
		case 4:
			count[4]++;
			break;
		case 5:
			count[5]++;
			break;
		case 6:
			count[6]++;
			break;
		case 7:
			count[7]++;
			break;
		case 8:
			count[8]++;
			break;
		case 9:
			count[9]++;
			break;
		}
	}

	cout << count[0] << '\n' << count[1] << '\n' << count[2] << '\n' << count[3] << '\n' << count[4] << '\n'
		<< count[5] << '\n' << count[6] << '\n' << count[7] << '\n' << count[8] << '\n' << count[9] << endl;
	
	return 0;
}

 

반응형

'Training > BOJ' 카테고리의 다른 글

[C++] 8958 OX퀴즈  (0) 2020.08.03
[C++] 3052 나머지  (0) 2020.08.03
[C++] 2562 최댓값  (1) 2020.08.03
[C++] 11720 숫자의 합  (0) 2020.07.20
[C++] 2439 별 찍기 - 2  (0) 2020.07.20