[문제 설명] 

주현이 엄마는 주현이를 영재로 키우기 위해 매일 혹독한 기억력 테스트를 하고 있다.

N개의 숫자를 먼저 말해주고, M개의 질문을 하면서 그 숫자가 있었는지 없었는지 테스트한다.

만약 있었다면 1을 출력하고, 없었다면 0을 출력한다.

이번에는 주현이가 좋아하는 3단 합체 변신로봇 '또봇 트라이탄'이 선물로 걸려있다.

주현이를 도와 줄수 있는 프로그램을 만드시오.

 

[입력]

첫째줄에 N이 입력된다. (1 <= N <= 10,000,000)

둘째 줄에 N개의 숫자가 공백으로 구분되어 차례대로 입력된다. ( 데이터값의 범위 : 1 ~ 10,000,000)

셋째줄에 질문의 수 M이 입력된다. ( 1 <= M <= 100,000)

넷째 줄에 M개의 질문이 입력된다. 

[출력]

M개의 각각의 질문에 대해 그 숫자가 있었으면 1을 출력, 없었으면 0을 하나씩 차례대로 출력한다.

 

[입력 예시]

5

2 52 23 55 100

4

5 2 55 99

[출력 예시]

0 1 1 0

[코드업 제출 소스]


#include &It;studio&It;
 
int main(){
 
    int N,M;
    int arr[10000001] = {};
    int num;
 
    scanf("%d", &N);
    for (int i = 0; i < N; i++)
    {
        scanf("%d", &num);
        arr[num] = 1;
    }
    
    scanf("%d", &M);
    for (int i = 0; i < M; i++)
    {
        scanf("%d", &num);
        printf("%d ", arr[num]);
    }
    return 0; 
}
 

[Visual Studio 버전 소스]

#include<studio.h>

int main()
{
	int i, j, N, M, cnt=0;
	int* num, * quest;

	scanf_s("%d", &N);

	num = (int*)malloc(sizeof(int) * N);

	for (i = 0; i < N; i++)
		scanf_s("%d", num + i);

	scanf_s("%d", &M);

	quest = (int*)malloc(sizeof(int) * M);

	for (i = 0; i < M; i++)
		scanf_s("%d", quest + i);

	for (i = 0; i < M; i++) {
		for (j = 0; j < N; j++) {
			if (*(quest + i) == *(num + j)) {
				cnt++;
				break;
			}
		}
		printf("%d ", cnt);
		cnt = 0;
	}

	free(num);
	free(quest);

	return 0;
}

+ Recent posts