๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜

[Java] BOJ 10816 ์ˆซ์ž ์นด๋“œ 2

by ๐ŸŠ๊ทค๐ŸŠ 2024. 7. 20.

๋ฌธ์ œ 

๋ฌธ์ œ ๋งํฌ https://www.acmicpc.net/problem/10816

  • ์ˆซ์ž ์นด๋“œ๋Š” ์ •์ˆ˜ ํ•˜๋‚˜๊ฐ€ ์ ํ˜€์ ธ ์žˆ๋Š” ์นด๋“œ์ด๋‹ค.
  • ์ƒ๊ทผ์ด๋Š” ์ˆซ์ž ์นด๋“œ N๊ฐœ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ •์ˆ˜ M๊ฐœ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ด ์ˆ˜๊ฐ€ ์ ํ˜€์žˆ๋Š” ์ˆซ์ž ์นด๋“œ๋ฅผ ์ƒ๊ทผ์ด๊ฐ€ ๋ช‡ ๊ฐœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.
  • ์ฒซ์งธ ์ค„์— ์ƒ๊ทผ์ด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ˆซ์ž ์นด๋“œ์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 500,000)์ด ์ฃผ์–ด์ง„๋‹ค.
  • ๋‘˜์งธ ์ค„์—๋Š” ์ˆซ์ž ์นด๋“œ์— ์ ํ˜€์žˆ๋Š” ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ˆซ์ž ์นด๋“œ์— ์ ํ˜€์žˆ๋Š” ์ˆ˜๋Š” -10,000,000๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 10,000,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค.
  • ์…‹์งธ ์ค„์—๋Š” M(1 ≤ M ≤ 500,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋„ท์งธ ์ค„์—๋Š” ์ƒ๊ทผ์ด๊ฐ€ ๋ช‡ ๊ฐœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ˆซ์ž ์นด๋“œ์ธ์ง€ ๊ตฌํ•ด์•ผ ํ•  M๊ฐœ์˜ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์ง€๋ฉฐ, ์ด ์ˆ˜๋Š” ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด์ ธ ์žˆ๋‹ค. ์ด ์ˆ˜๋„ -10,000,000๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 10,000,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค.
  • ์ฒซ์งธ ์ค„์— ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ M๊ฐœ์˜ ์ˆ˜์— ๋Œ€ํ•ด์„œ, ๊ฐ ์ˆ˜๊ฐ€ ์ ํžŒ ์ˆซ์ž ์นด๋“œ๋ฅผ ์ƒ๊ทผ์ด๊ฐ€ ๋ช‡ ๊ฐœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€๋ฅผ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด ์ถœ๋ ฅํ•œ๋‹ค.

์•„์ด๋””์–ด

  • N๊ฐœ์˜ ์ˆซ์ž๋“ค์„ ์ž…๋ ฅ๋ฐ›์„ ๋•Œ, hashmap์œผ๋กœ ์ €์žฅํ–ˆ๋Š”๋ฐ key๊ฐ’์„ ์ž…๋ ฅ๋ฐ›์€ ์ˆซ์ž๋กœ ํ•˜๊ณ  value ๊ฐ’์€ ์ฒ˜์Œ์—๋Š” 1๋กœ ์ €์žฅํ•œ๋‹ค.
  • ๋งŒ์•ฝ ์ž…๋ ฅ๋“ค์–ด์˜จ ์ˆ˜๋กœ key ๊ฐ’์ด ์ด๋ฏธ ์žˆ๋‹ค๋ฉด, ํ•ด๋‹น key๊ฐ’์˜ value ๊ฐ’์— 1์„ ๋”ํ•ด์„œ ๋‹ค์‹œ ์ €์žฅํ•œ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  M๊ฐœ์˜ ์ˆซ์ž๋“ค์„ ์ž…๋ ฅ๋ฐ›์•„ ๋ฐฐ์—ด์— ์ €์žฅ ํ›„, ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฆฌ๋ฉฐ hashmap์—์„œ key๊ฐ’์„ ์ฐพ๋Š”๋‹ค.
  • ํ•ด๋‹น key ๊ฐ’์„ ์ฐพ์œผ๋ฉด ๊ฒฐ๊ณผ๊ฐ’์„ ์ €์žฅํ•  ๋ฐฐ์—ด์— ์ˆœ์„œ์— ๋งž์ถฐ์„œ value ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค. 

๊ฒช์€ ์‹œํ–‰์ฐฉ์˜ค

  • ์ฒ˜์Œ์— hashmap์„ ์“ฐ์ง€์•Š๊ณ  ์ผ์ผ์ด ์ฐพ์•˜๋‹ค๊ฐ€ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚ฌ๋‹ค... ์—ญ์‹œ ์‹œ๊ฐ„์ดˆ๊ณผ๋ฅผ ์กฐ์‹ฌํ•˜์ž...!

์ž๋‚˜๊นจ๋‚˜ ์‹œ๊ฐ„์ดˆ๊ณผ ์กฐ์‹ฌ...

์ฝ”๋“œ

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

public class BOJ10816 {
    public static void main(String[] args) throws Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        int N = Integer.parseInt(br.readLine());

        // N๊ฐœ์˜ ์นด๋“œ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฐ์—ด
        HashMap<Integer, Integer> n_arr = new HashMap<>();

        StringTokenizer st = new StringTokenizer(br.readLine());

        // N๊ฐœ์˜ ์ˆซ์ž๋ฅผ ์ž…๋ ฅ๋ฐ›์•„์„œ ์ €์žฅ
        for(int i = 0; i < N; i++){
            int n = Integer.parseInt(st.nextToken());

            // n์ธ key๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ
            if(n_arr.containsKey(n)){
                // n์˜ value ๊ฐ’์„ ์ €์žฅ
                int v = n_arr.get(n);

                // ๋‹ค์‹œ ํ‚ค๋ฅผ ์ €์žฅํ•  ๋•Œ value ๊ฐ’์— 1์ด ๋”ํ•ด์ง„ ๊ฑธ ์ƒˆ๋กœ ์ €์žฅ
                n_arr.put(n, v + 1);
            }
            // ์—†๋‹ค๋ฉด n์„ key๊ฐ’, 1์„ value ๊ฐ’์œผ๋กœ ์ €์žฅ
            else{
                n_arr.put(n, 1);
            }
        }

        int M = Integer.parseInt(br.readLine());

        // M๊ฐœ์˜ ์นด๋“œ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฐ์—ด
        int m_arr[] = new int[M];

        StringTokenizer st2 = new StringTokenizer(br.readLine());

        // M๊ฐœ์˜ ์ˆซ์ž๋ฅผ ์ž…๋ ฅ๋ฐ›์•„์„œ ์ €์žฅ
        for(int i = 0; i < M; i++){
            int m = Integer.parseInt(st2.nextToken());

            m_arr[i] = m;
        }

        // ๊ฒฐ๊ณผ๊ฐ’ ์ €์žฅํ•  ๋ฐฐ์—ด
        int result[] = new int[M];

        // m_arr์— ์žˆ๋Š” ๊ฐ’๋“ค์ด m_arr์— key๊ฐ’์œผ๋กœ ์žˆ๋‹ค๋ฉด ํ•ด๋‹น ์œ„์น˜์—
        // value๊ฐ’ ์ €์žฅ
        for(int i = 0; i < m_arr.length; i++){
            result[i] = n_arr.getOrDefault(m_arr[i], 0);
        }

        for(int i = 0; i < result.length; i++){
            sb.append(result[i] + " ");
        }

        System.out.println(sb);
    }
}



'์•Œ๊ณ ๋ฆฌ์ฆ˜' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Java] BOJ 10845 ํ  (4) 2024.07.20
[Java] BOJ 10828 ์Šคํƒ  (0) 2024.07.20
[Java] BOJ 10773 ์ œ๋กœ  (0) 2024.07.20
[Java] BOJ 9012 ๊ด„ํ˜ธ  (2) 2024.07.19
[Java] BOJ 4949 ๊ท ํ˜•์žกํžŒ ์„ธ์ƒ  (2) 2024.07.19