숫자 카드 2
08 September 2019
문제 : https://www.acmicpc.net/problem/10816
숫자 카드의 갯수를 찾는 문제를 풀어보도록 하겠습니다.
#include<stdio.h>
static int arr[20000001] = {};
int main(void) {
int N, val;
scanf("%d", &N);
for (int i = 0; i < N; i++)
{
scanf("%d", &val);
if (val < 0)
{
arr[10000000 - val]++;
}
else {
arr[val]++;
}
}
int count, num;
scanf("%d", &count);
for (int i = 0; i < count; i++)
{
scanf("%d", &num);
if (num < 0)
{
printf("%d ", arr[10000000 - num]);
}
else {
printf("%d ", arr[num]);
}
}
return 0;
}
숫자의 범위가 10,000,000에서 -10,000,000 이므로 arr의 크기를 20,000,000 로 설정하고, 음수의 경우는 10,000,000를 더해 arr의 값에 더해줍니다.
이후, 들어오는 값에서 해당하는 arr의 값을 return해주도록 합니다.