728x90
▶문제 : 기억력 테스트 2 (codeup.kr)
▶코드 작성
#include <stdio.h>
int arr[10000001];
int num[100001];
int main()
{
int n, m, temp;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &temp);//temp변수에 입력
arr[temp] = 1;//배열에서 temp자리를 1 대입
}
scanf("%d", &m);
for (int i = 0; i < m; i++) {
scanf("%d", &temp);//temp변수에 입력
if (arr[temp] == 1) num[i] = 1;//arr배열 temp자리가 1일 때 수가 있으므로 num[i]에 1 대입
else num[i] = 0;//arr배열 temp자리가 0일 때 수가 없으므로 num[i]에 0 대입
}
for (int i = 0; i < m; i++) {
printf("%d ", num[i]);
}
return 0;
}
▶해석
입력받은 수를 배열의 자리라고 생각하여 배열 arr [입력받은 수 temp]에 1을 넣으면 temp이 존재한다는 것을 알 수 있다. 질문하는 수를 temp에 입력받으면서 arr [temp]이 1이면 temp값이 존재한다는 의미이므로 1을 출력하도록 num [i]에 1을 넣고 아니면 0을 넣어서 마지막에 num배열을 출력해준다.
728x90
'코드업(codeup) > C' 카테고리의 다른 글
코드업(codeup) 3109 : 정올 참여 학생 리스트 만들기 2 C언어 (0) | 2022.01.14 |
---|---|
코드업(codeup) 3170 : 기억력 테스트 9 C언어 (0) | 2022.01.10 |
코드업(codeup) 2748 : 덧셈, 뺄셈으로 n만들기 C언어 (0) | 2022.01.10 |
코드업(codeup) 2640 : n의 k승 구하기 2 C언어 (0) | 2022.01.05 |
코드업(codeup) 2055 : 두 수의 약수 구하기 C언어 (0) | 2022.01.04 |
댓글