Baekjoon Review

[Silver 4] 10816번 숫자 카드 2

hanseongbugi 2023. 10. 13. 17:53

https://www.acmicpc.net/problem/10816

 

10816번: 숫자 카드 2

첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,0

www.acmicpc.net

 

이 문제는 맵을 사용해서 맵안에 key, value 쌍이 존재하는지 검사하면 된다.

맵의 key와 value를 정수형으로 선언한다 이때 key는 long으로 해야한다.

 

반복을 진행할 때 맵에 input에 해당하는 key, value 쌍이 존재하지 않는다면,

input으로 key를 생성해 value를 1로 초기화한다.

만약 존재한다면 value를 증가시킨다.

 

이후, 위와 비슷한 형식으로 출력을 진행하면 된다.

 

#include<iostream>
#include<map>
using namespace std;

int main(){
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    int N,M;
    map<long,int> cards;
    cin>>N;
    for(int i = 0;i<N;i++){
        long input;
        cin>>input;
        if(cards.find(input) != cards.end())
            cards[input]+=1;
        else
            cards[input] = 1;
    }
    cin>>M;
    for(int i = 0;i<M;i++){
        long input;
        cin>>input;
        if(cards.find(input) != cards.end())
            cout<<cards[input]<<' ';
        else
            cout<<0<<' ';
    }
}