문제 링크: https://www.acmicpc.net/problem/2577
문제 요약
세 개의 자연수 A, B, C가 주어집니다. 이때 A x B x C를 계산한 결과에서 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 문제입니다.
문제 해결 방법
이 문제를 해결하기 위해서는 우선 A x B x C를 계산한 결과를 구해야 합니다. 그 다음에는 각 숫자가 몇 번 쓰였는지를 구하기 위해 각 자리수를 분리하고 그 자리수가 몇 번 나타나는지를 세어주어야 합니다.
여기서 주의해야 할 점은 A, B, C가 100 미만의 자연수라는 점입니다. 따라서 A x B x C는 최대 1,000,000이 되므로 그 자리수는 최대 6자리가 됩니다. 이를 고려하여 변수를 선언해줘야 합니다.
이제 문제를 해결하는 코드를 작성해보겠습니다.
#include <stdio.h>
int main()
{
int a, b, c;
int result;
int count[10] = {0, };
int i;
scanf("%d %d %d", &a, &b, &c);
result = a * b * c;
while(result > 0)
{
count[result % 10]++;
result /= 10;
}
for(i = 0; i < 10; i++)
{
printf("%d\n", count[i]);
}
return 0;
}
먼저 입력 받을 변수 a, b, c를 선언해줍니다. 그리고 A x B x C의 결과를 저장할 변수 result도 선언해줍니다. 그리고 각 숫자가 몇 번 쓰였는지를 세어줄 배열 count를 선언해줍니다. 이 배열은 0으로 초기화해주는 것이 좋습니다. 그리고 반복문에서 사용할 변수 i도 선언해줍니다.
scanf 함수를 이용하여 a, b, c를 입력 받습니다. 그리고 A x B x C의 결과인 result를 계산해줍니다.
이제 while 문을 이용하여 result의 각 자리수를 분리하고, count 배열에서 그 자리수에 해당하는 인덱스의 값을 1 증가시켜줍니다. 이렇게 하면 각 숫자가 몇 번 쓰였는지를 count 배열에 저장할 수 있습니다.
마지막으로 for 문을 이용하여 count 배열에 저장된 값을 출력해줍니다. 각 숫자가 몇 번 쓰였는지 출력합니다.
'백준 문제 풀이 > c언어' 카테고리의 다른 글
| 백준 2908 C언어 문제 풀이 - 상수 (1) | 2024.01.28 |
|---|---|
| 백준 10871 C언어 문제 풀이 - X보다 작은 수 (0) | 2024.01.28 |
| 백준 1259 C언어 문제 풀이 - 팰린드롬수 (0) | 2024.01.28 |
| 백준 1181 C언어 문제 풀이 - 단어 정렬 (1) | 2024.01.28 |
| 백준 1152 C언어 문제 풀이 - 단어의 개수 (0) | 2024.01.28 |