백준 10816 - 숫자 카드 2

Updated:

Java

10816 번 - 숫자 카드 2

문제

접근 방법

HashMap을 사용하여 해결하였다. getOrDefault() 을 사용하여 카드 개수를 세었다.

getOrDefault(put) : 찾는 키가 존재한다면 찾는 키의 값을 반환하고, 없다면 기본 값을 반환

코드

import java.io.*;
import java.util.*;

public class Main {
    static int n, m;
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        n = stoi(br.readLine());
        
        StringTokenizer stk = new StringTokenizer(br.readLine());
        int num;
        HashSet<Integer> set = new HashSet<>();
        HashMap<Integer, Integer> map = new HashMap<>();
        while(stk.hasMoreTokens()) {
            num = stoi(stk.nextToken());
            map.put(num, map.getOrDefault(num, 0) + 1);
        }
        m = stoi(br.readLine());

        StringBuilder sb = new StringBuilder();
        stk = new StringTokenizer(br.readLine());
        while(stk.hasMoreTokens()) {
            num = stoi(stk.nextToken());
            sb.append(map.getOrDefault(num, 0)).append(" ");
        }
        
        System.out.println(sb.toString());

        return ;
    }

    static int stoi(String s){
        return Integer.parseInt(s);
    }
}