1. 문제 링크

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

 

2577번: 숫자의 개수

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

www.acmicpc.net

 

 

 

2. 문제 설명

3개의 숫자를 입력받아 곱한 후, 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지 구하는 문제입니다.

 

 

 

3. 소스코드

BOJ 2577번 숫자의 개수 C++ 풀이입니다.

#include <iostream>
using namespace std;

int main(void)
{
	ios::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);

	int A, B, C, mul;
	int arr[10] = {0, };
	cin >> A >> B >> C;
	mul = A * B * C;
	while (mul > 0) {
		arr[mul % 10]++;
		mul /= 10;
	}
	for (int i = 0; i < 10; i++)
		cout << arr[i] << '\n';

	return 0;
}

각각의 숫자가 몇 번씩 쓰였는지 구하기 위해 arr[10]을 선언하고 0으로 초기화했습니다.

arr[mul % 10]을 통해 mul의 일의 자리 숫자를 구해서 arr배열의 해당 인덱스에 +1을 해줍니다.

일의 자리 숫자를 구했으니 mul /= 10으로 mul의 값을 바꿔줍니다.

마지막으로 arr배열의 값을 차례로 출력해주면 됩니다.

 

'Algorithm > Study' 카테고리의 다른 글

[백준 10804번 C++] 카드 역배치  (0) 2020.04.30
[백준 1267번 C++] 핸드폰 요금  (0) 2020.04.30
[백준 10093번 C++] 숫자  (0) 2020.04.29
[백준 2309번 C++] 일곱 난쟁이  (0) 2020.04.29
[백준 2587번 C++] 대표값2  (0) 2020.04.29

+ Recent posts