
https://www.acmicpc.net/problem/17219
문제
- 첫째 줄에 저장된 사이트 주소의 수 N (1 <= N <= 100000)과 비밀번호를 찾으려는 사이트의 주소 M (1 <= M <= 100000)이 공백으로 구분되어 입력된다.
- 둘째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번호가 공백으로 구분되어 입력된다.
- 사이트 주소 (1 <= 사이트의 주소.length() <= 100000) 는 알파벳 소문자, 대문자, 대시, 마침표로 이루어져 있고 중복되지 않는다.
- 비밀번호 (1 <= 비밀번호.length() <= 100000) 는 알파벳 대문자로만 이루어져 있다.
- N+2번째 줄부터 M개의 줄에 걸쳐 비밀번호를 찾으려는 사이트의 주소가 각 줄에 입력된다. 반드시 이미 저장된 사이트의 주소가 입력됨.
정답 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.StringTokenizer;
class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
HashMap<String, String> hash = new HashMap<>();
for (int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
hash.put(st.nextToken(), st.nextToken());
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < M; i++) {
String s = br.readLine();
sb.append(hash.get(s)).append("\n");
}
System.out.println(sb);
br.close();
}
}
간단하게 해시맵을 이용하여 사이트 주소를 Key로, 비밀번호를 Value로 받아 저장한다.
필요한 사이트의 주소를 Key로 검색하여 Value의 값을 얻어내면 해당 사이트의 비밀번호를 간단하게 얻어낼 수 있다.
버퍼를 사용한 뒤에 프로그램 종료 시 닫아야 되는데 항상 이 부분을 깜빡했다.
앞으로라도 닫아야겠다.
'백준 문제 풀이 > 백준 (JAVA)' 카테고리의 다른 글
| JAVA 백준 7569 토마토 (BFS) (1) | 2026.01.16 |
|---|---|
| JAVA 백준 14940 쉬운 최단거리 (BFS) (0) | 2026.01.14 |
| JAVA 백준 17225 세훈이의 선물가게 (정렬) (0) | 2025.12.31 |
| JAVA 백준 15486 퇴사 2 (DP) (0) | 2025.12.29 |
| JAVA 백준 2096 내려가기 (DP) (0) | 2025.12.18 |