C/백준알고리즘

[C] 백준알고리즘 #2577 숫자의 개수

Sehyeok20 2021. 1. 19. 10:49
반응형

백준알고리즘 #2577 숫자의 개수

 

A B C를 곱한 값이 x라고 할 때, 0부터 9까지의 숫자가 각각 몇번씩 쓰였는지 확인하는 문제이다.

먼저 입력받는 값을 x, y, z 라 하고 이 값들을 모두 곱한 값을 n에 저장한다

그리고 0부터 9까지 각 수들의 사용 횟수를 세기 위한 배열 a[10]을 생성하고 값을 모두 0으로 초기화해준다.

 

while문을 이용하여 n을 10으로 나눈 나머지를 임시변수tmp에 저장하고 a[tmp]의 값을 증가시킨다.

n에 다시 n을 10으로 나눈 몫을 저장해두면 12345 -> 1234 -> 123 -> 12 -> 1 순으로 n이 저장된다.

즉 오른쪽부터 하나씩 떨어져나간다.

n의 몫이 더이상 남지않아 n / 10이 0이되면 break문을 이용해 빠져나가고

다시 for문을 사용하여 a[]배열에 저장된 값들을 하나씩 출력해주면 된다.

 

#include <stdio.h>

int main() {
	int x, y, z, n;
	int a[10] = { 0,0,0,0,0,0,0,0,0,0 };
	int tmp;
	scanf_s("%d", &x);
	scanf_s("%d", &y);
	scanf_s("%d", &z);

	n = x * y * z;
	while (1) {
		tmp = n % 10;
		a[tmp]++;
		n = n / 10;
		if (n == 0)
			break;
	}
	for (int i = 0; i < 10; i++) {
		printf("%d\n", a[i]);
	}

}
반응형