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

[Java] BOJ 17219 ๋น„๋ฐ€๋ฒˆํ˜ธ ์ฐพ๊ธฐ

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

๋ฌธ์ œ 

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

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

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

  • ์‚ฌ์ดํŠธ ์ฃผ์†Œ๋ฅผ ๋ณด๊ณ  ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ฐพ๋Š”๋‹ค๋Š” ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ  ๋ฐ”๋กœ hashmap์„ ์‚ฌ์šฉํ•ด์„œ ํ’€์–ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.
  • ๋จผ์ € ์‚ฌ์ดํŠธ ์ฃผ์†Œ๋ฅผ key๊ฐ’, ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ value๊ฐ’์œผ๋กœ hashmap์— ์ €์žฅํ•œ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ฐพ์„ ์‚ฌ์ดํŠธ์˜ ์ฃผ์†Œ๋ฅผ key๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•ด์„œ ๋งž๋Š” value ๊ฐ’์„ ์ฐพ์•„ ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค. 

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

  • X

hashmap์„ ์ž˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ ๊ฒƒ ๊ฐ™์•„์„œ ๊ธฐ๋ถ„์ด ์ข‹๋‹ค ใ…Žใ…Ž

์ฝ”๋“œ

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

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

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

        // ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์žˆ๋Š” ์‚ฌ์ดํŠธ ์ฃผ์†Œ ๊ฐœ์ˆ˜
        int N = Integer.parseInt(st.nextToken());

        // ๊ตฌํ•ด์•ผ๋˜๋Š” ์‚ฌ์ดํŠธ ๊ฐœ์ˆ˜
        int M = Integer.parseInt(st.nextToken());

        // ์‚ฌ์ดํŠธ์˜ ์ฃผ์†Œ์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ €์žฅํ•  hashmap
        HashMap<String, String> sites = new HashMap<>();

        // ์‚ฌ์ดํŠธ์˜ ์ฃผ์†Œ์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅ๋ฐ›์Œ
        for(int i = 0; i < N; i++){
            StringTokenizer st2 = new StringTokenizer(br.readLine());

            // ์‚ฌ์ดํŠธ ์ฃผ์†Œ
            String url = st2.nextToken();

            // ๋น„๋ฐ€๋ฒˆํ˜ธ
            String password = st2.nextToken();

            // hashmap์— ์‚ฌ์ดํŠธ ์ฃผ์†Œ๋Š” key, ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” value๋กœ ์ €์žฅ
            sites.put(url, password);
        }

        // ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ฐพ์„ ์‚ฌ์ดํŠธ์˜ ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅ๋ฐ›์Œ
        for(int i = 0; i < M; i++){
            // ์‚ฌ์ดํŠธ ์ฃผ์†Œ
            String s = br.readLine();

            sb.append(sites.get(s) + "\n");
        }

        System.out.println(sb);
    }
}



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

[Java] BOJ 1463 1๋กœ ๋งŒ๋“ค๊ธฐ  (2) 2024.07.27
[Java] BOJ 1003 ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜  (0) 2024.07.26
[Java] BOJ 11399 ATM  (2) 2024.07.23
[Java] BOJ 11047 ๋™์ „ 0  (2) 2024.07.23
[Java] BOJ 1764 ๋“ฃ๋ณด์žก  (2) 2024.07.23