๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๊ณต๋ถ€/C++

๋ฐฑ์ค€ 2577๋ฒˆ : ์ˆซ์ž์˜ ๊ฐœ์ˆ˜ with C++

๋ฌธ์ œ

์„ธ ๊ฐœ์˜ ์ž์—ฐ์ˆ˜ A, B, C๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ A × B × C๋ฅผ ๊ณ„์‚ฐํ•œ ๊ฒฐ๊ณผ์— 0๋ถ€ํ„ฐ 9๊นŒ์ง€ ๊ฐ๊ฐ์˜ ์ˆซ์ž๊ฐ€ ๋ช‡ ๋ฒˆ์”ฉ ์“ฐ์˜€๋Š”์ง€๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์˜ˆ๋ฅผ ๋“ค์–ด A = 150, B = 266, C = 427 ์ด๋ผ๋ฉด A × B × C = 150 × 266 × 427 = 17037300 ์ด ๋˜๊ณ , ๊ณ„์‚ฐํ•œ ๊ฒฐ๊ณผ 17037300 ์—๋Š” 0์ด 3๋ฒˆ, 1์ด 1๋ฒˆ, 3์ด 2๋ฒˆ, 7์ด 2๋ฒˆ ์“ฐ์˜€๋‹ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— A, ๋‘˜์งธ ์ค„์— B, ์…‹์งธ ์ค„์— C๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. A, B, C๋Š” ๋ชจ๋‘ 100๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 1,000๋ณด๋‹ค ์ž‘์€ ์ž์—ฐ์ˆ˜์ด๋‹ค.

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์—๋Š” A × B × C์˜ ๊ฒฐ๊ณผ์— 0 ์ด ๋ช‡ ๋ฒˆ ์“ฐ์˜€๋Š”์ง€ ์ถœ๋ ฅํ•œ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ ์—ด ๋ฒˆ์งธ ์ค„๊นŒ์ง€ A × B × C์˜ ๊ฒฐ๊ณผ์— 1๋ถ€ํ„ฐ 9๊นŒ์ง€์˜ ์ˆซ์ž๊ฐ€ ๊ฐ๊ฐ ๋ช‡ ๋ฒˆ ์“ฐ์˜€๋Š”์ง€ ์ฐจ๋ก€๋กœ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ถœ๋ ฅํ•œ๋‹ค.

#include <iostream>
using namespace std;

int n_count(int i, int N);

int main() {
	int A = 0, B = 0, C = 0;
	cin >> A >> B >> C;

	int N = A * B * C;	// ๋ชจ๋‘ ๊ณฑํ•œ ์ˆ˜
	int num_count[10] = { 0, };	// ๊ฐ ์ˆซ์ž๊ฐ€ ์“ฐ์ธ ํšŸ์ˆ˜

	for (int i = 0; i < 10; i++) {	// ๊ฐ ์ˆซ์ž๋งˆ๋‹ค ์“ฐ์ธ ํšŸ์ˆ˜ ์ฐพ๊ธฐ
		num_count[i] = n_count(i, N);
	}

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

	return 0;
}

int n_count(int i, int N) {	// N์˜ ๊ฐ ์ž๋ฆฌ์ˆ˜์—์„œ i์˜ ๊ฐœ์ˆ˜๋ฅผ ์ฐพ์•„์ฃผ๋Š” ํ•จ์ˆ˜
	int num = 0, count = 0;	// count : i์˜ ๊ฐœ์ˆ˜
	while (N > 0) {
		num = N % 10;	// N์˜ ์ผ์˜ ์ž๋ฆฌ ์ˆ˜
		if (num == i) {	// i์™€ ์ผ์น˜ ์‹œ ๊ฐœ์ˆ˜ +1
			count++;
		}
		N = (N - num) / 10;	// N์—์„œ ์ผ์˜ ์ž๋ฆฌ๋ฅผ ๋ฒ„๋ฆผ
	}

	return count;
}