1 minute read



문제 풀이


이번 문제는 자료구조 중 하나인 HashMap을 이용해 간단히 풀 수 있다.


아이디어 도출

문제에서 요구한 대로 입출력 속도 향상을 위해 Scanner가 아닌 BufferedReader와 BufferedWriter를 사용하여 입출력 처리를 하였다.

문제 자체는 굉장히 쉽다.

  1. N만큼의 입력을 받으며 HashMap에 사이트와 비밀번호를 담는다.
  2. M만큼의 찾고자 하는 사이트 입력을 받으며 해당 사이트가 HashMap에 있는지 찾아 사이트의 값인 비밀번호를 출력한다.


문제 풀이를 위해 작성한 코드는 아래와 같다.

작성코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import java.io.*;
import java.util.*;

class Main {    

    public static void main(String[] args) throws IOException {

        try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out))) {

            StringTokenizer st = new StringTokenizer(br.readLine());
        
            int N = Integer.parseInt(st.nextToken());
            int M = Integer.parseInt(st.nextToken());

            Map<String, String> hm = new HashMap<>();

            // HashMap에 사이트와 비밀번호를 담는다.
            for(int i=0; i<N; i++) {
                String str = br.readLine();
                hm.put(str.split(" ")[0], str.split(" ")[1]);
            }
            
            // 해당 사이트의 문자열 값을 key로 HashMap의 value인 비밀번호를 조회한다.
            for(int i=0; i<M; i++) {
                String find = br.readLine();
                bw.write(hm.get(find)+"\n");
            }

        }

    }

}

출처


  • 해당 문제의 저작권은 문제를 만든이에게 있으며 자세한 내용은 문제 링크에서 참조바랍니다.