[백준] 17219번 : 비밀번호 찾기 (JAVA)

인간몽쉘김통통·2023년 5월 9일

백준

목록 보기
6/92

문제

풀이

이해

메모장에는 주소와 그 주소에 해당하는 비밀번호 목록이 적혀있다. 비밀번호를 찾고 싶은 주소를 입력받으면 그에 해당하는 비밀번호를 출력하면 된다.

접근

자바 컬렉션 Map을 이용하면 쉽게 풀 수 있다. 여기서 key값이 사이트의 주소가 되고 value값이 비밀번호가 된다.

map.put을 통해 주소 목록을 작성하고 map.get을 통해 필요한 정보를 가져오면 된다.

다만 본 문제에서 입출력 방식이 느리면 시간초과가 날 수 있다. JAVA의 경우에는 Scanner 대신 BufferedReader 그리고 System.out.println 대신 BufferedWriter를 쓰는 것이 좋다. 이 입출력 클래스는 버퍼의 내용을 그대로 사용하기 때문에 속도가 빠르다.

코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.HashMap;

public class Main {
    static int N;
    static int M;
    static HashMap<String, String> map;
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        String[] str1 = br.readLine().split(" "); 

        map = new HashMap<>();

        N = Integer.parseInt(str1[0]);
        M = Integer.parseInt(str1[1]);
        
        while(N-->0){
            String[] str2 = br.readLine().split(" ");

            map.put(str2[0], str2[1]);
        }
        while(M-->0){
            String search = br.readLine();

            bw.write(map.get(search) + "\n");
        }
        bw.flush();
        bw.close();
        br.close();
    }
}

결과

profile
SW 0년차 개발자입니다.

0개의 댓글