Algorithm/BOJ
[c++][BOJ] 숫자 카드 2
kim-hasa
2021. 9. 30. 14:29
https://www.acmicpc.net/problem/10816
10816번: 숫자 카드 2
첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,
www.acmicpc.net
숫자카드 1번과 같지만 중복으로 들어온다는 문제가 있었습니다.
그냥 무식하게 배열에 때려넣고 풀긴 했는데 ,,, 다른 풀이를 많이 찾아봐야겠습니다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int plusarr[10000001] = {0};
int minusarr[10000001] = {0};
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0); //cin 속도 향상 위해
int n;
cin >> n;
for(int i=0; i<n; i++)
{
int a;
cin >> a;
if(a >= 0)
plusarr[a]++;
else
minusarr[-a]++;
}
int m;
cin >> m;
for(int j=0; j<m; j++)
{
int num;
cin >> num;
if(num >= 0)
cout << plusarr[num] << ' ';
else
cout << minusarr[-num] << ' ';
}
}