숫자 카드 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해주도록 합니다.