자바 백준 17219번
실버 4
https://www.acmicpc.net/problem/17219
17219번: 비밀번호 찾기
첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번
www.acmicpc.net
문제 보기

분류: 자료 구조, 해시를 사용한 집합과 맵
문제 풀기
문제에서 힌트로 주어진 BufferedReader와 BufferedWriter를 사용하여 입력과 출력을 한다.
해시맵을 이용하여 사이트 주소와 비밀번호를 입력받고 get() 메서드를 이용하여 출력해야할 사이트의 비밀번호를 가져온 후 출력한다.
코드 보기
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) throws IOException { // 입력 스트림과 출력 스트림을 설정 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); // N과 M 값을 입력 String[] nm = br.readLine().split(" "); int N = Integer.parseInt(nm[0]); // 저장된 사이트 주소의 수 int M = Integer.parseInt(nm[1]); // 비밀번호를 찾으려는 사이트 주소의 수 // 저장된 사이트 주소와 비밀번호를 저장하는 Map을 생성 Map<String, String> passwordMap = readPasswordMap(br, N); // 비밀번호를 찾고 출력 findAndPrintPasswords(br, bw, passwordMap, M); // 출력 버퍼를 비우고 입력/출력 스트림 종료 bw.flush(); br.close(); bw.close(); } // 저장된 사이트 주소와 비밀번호를 입력받아 Map에 저장하는 함수 private static Map<String, String> readPasswordMap(BufferedReader br, int N) throws IOException { Map<String, String> passwordMap = new HashMap<>(); for (int i = 0; i < N; i++) { // 각 줄에서 사이트 주소와 비밀번호를 읽어와 Map에 저장 String[] siteInfo = br.readLine().split(" "); String site = siteInfo[0]; // 사이트 주소 String password = siteInfo[1]; // 비밀번호 passwordMap.put(site, password); } return passwordMap; } // 비밀번호를 찾고 출력하는 함수 private static void findAndPrintPasswords(BufferedReader br, BufferedWriter bw, Map<String, String> passwordMap, int M) throws IOException { for (int i = 0; i < M; i++) { // 비밀번호를 찾으려는 사이트 주소를 읽어옴 String siteToFind = br.readLine(); // 사이트 주소를 키로 사용하여 비밀번호를 찾음 String password = passwordMap.get(siteToFind); // 찾은 비밀번호를 출력 버퍼에 기록 bw.write(password + "\n"); } } }
'공부하기 > 백준' 카테고리의 다른 글
[Java] 백준 풀기 2556 - 별 찍기 14 (0) | 2023.09.23 |
---|---|
[Java] 백준 풀기 10990 - 별 찍기 15 (0) | 2023.09.23 |
[Java] 백준 풀기 1526 - 가장 큰 금민수 (0) | 2023.09.20 |
[Java] 백준 풀기 1977 - 완전 제곱수 (0) | 2023.09.19 |
[Java] 백준 풀기 20115 - 에너지 드링크 (0) | 2023.09.13 |