백준/C
백준 3052번 : 나머지 [C]
대니스
2022. 7. 25. 17:54
주소 : https://www.acmicpc.net/problem/3052
3052번: 나머지
각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다.
www.acmicpc.net
소스 코드 :
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define SIZE 10
int main()
{
int a[SIZE] = { 0, };
int num[42] = { 0, };
int res = 0;
for (int i = 0;i < SIZE;i++)
{
scanf("%d", &a[i]);
a[i] = a[i] % 42;
}
for(int i=0;i<SIZE;i++)
for (int j = 0;j < 42;j++)
{
if (a[i] == j)
num[j]--;
}
for (int i = 0;i < 42;i++)
if (num[i] < 0)
res++;
printf("%d", res);
return 0;
}
마무리 : 입력된 수를 저장할 배열과 42개의 공간을 가진 배열 2개를 만들어 입력된 수의 나머지를 후자의 배열에 저장한 뒤 0~41의 숫자가 있으면 0을 저장한 후자의 배열에 마이너스를 하여 음수이면 출력의 수를 더하는 값으로 구했다. 만약 C언어가 아닌 다른 언어로 했으면 집합을 이용했으면 편했을 것이다