[Java] 백준(실버-4) 17219번 - 비밀번호 찾기
문제 풀이
이번 문제는 자료구조 중 하나인 HashMap을 이용해 간단히 풀 수 있다.
아이디어 도출
문제에서 요구한 대로 입출력 속도 향상을 위해 Scanner가 아닌 BufferedReader와 BufferedWriter를 사용하여 입출력 처리를 하였다.
문제 자체는 굉장히 쉽다.
- N만큼의 입력을 받으며 HashMap에 사이트와 비밀번호를 담는다.
- 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");
}
}
}
}
출처
- 해당 문제의 저작권은 문제를 만든이에게 있으며 자세한 내용은 문제 링크에서 참조바랍니다.