입력 코드
#include <stdio.h>
#include <ctype.h>
enum {
POSITIVE,
NEGATIVE
};
int getInt(void);
int pos[10000001];
int neg[10000001];
int flag;
int main(void)
{
int n, temp;
scanf("%d ", &n);
while (n--) {
flag = POSITIVE;
temp = getInt(), (flag == POSITIVE) ? pos[temp]++ : neg[temp]++;
}
scanf("%d ", &n);
while (n--) {
flag = POSITIVE;
temp = getInt(), printf("%d ", (flag == POSITIVE) ? pos[temp] : neg[temp]);
}
return 0;
}
int getInt(void)
{
int result, c;
for (result = 0; ((c = getchar()) != EOF); ) {
if (isdigit(c)) {
result = (result * 10) + (c - '0');
} else if (c == '-') {
flag = NEGATIVE;
} else {
break;
}
}
return result;
}
출처 www.acmicpc.net/source/20385882
코드 설명
#자료구조 #이분탐색 #해시를 사용한 집합과 맵
#include <stdio.h>
main() {
int N, M;
int arrN[500000], arrM[500000];
int cntM[500000] = { 0, };
scanf("%d", &N);
int i, j;
for (i = 0; i < N; i++) {
scanf("%d", &arrN[i]);
}
scanf("%d", &M);
for (j = 0; j < M; j++) {
scanf("%d", &arrM[j]);
}
for (j = 0; j < M; j++) {
for (i = 0; i < N; i++) {
if (arrM[j] == arrN[i])
cntM[j]++;
}
}
for (i = 0; i < M; i++) {
printf("%d ", cntM[i]);
}
}
시간초과
문제 출처
'C' 카테고리의 다른 글
#61. [백준_C언어] 10845 : 큐 (0) | 2021.02.02 |
---|---|
#60. [백준_C언어] 10828 : 스택 (0) | 2021.02.01 |
#58. [백준_C언어] 10814 : 나이순 정렬 (0) | 2021.01.30 |
#57. [백준_C언어] 9012 : 괄호 (0) | 2021.01.30 |
#56. [백준_C언어] 2751 : 수 정렬하기 2 (0) | 2021.01.29 |