[문제 설명]
주현이 엄마는 주현이를 영재로 키우기 위해 매일 혹독한 기억력 테스트를 하고 있다.
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;
}
'프로그래밍 > C' 카테고리의 다른 글
[코드업 - 1460] [기초-배열연습] 2차원 배열 순서대로 채우기 1-1 (0) | 2021.12.28 |
---|---|
[코드업 - 1442] 선택정렬 (0) | 2021.12.27 |
[코드업 - 1441] 버블정렬 (0) | 2021.12.27 |
[코드업 - 1440] 비교 (0) | 2021.12.27 |
[코드업 - 1001] 출력하기01(설명) (0) | 2021.12.25 |