(Java) 백준 17219번 - 비밀번호 찾기

코딩너구리·2026년 2월 19일

코딩 문제 풀이

목록 보기
228/266

https://www.acmicpc.net/problem/17219

문제

> 2019 HEPC - MAVEN League의 "비밀번호 만들기"와 같은 방식으로 비밀번호를 만든 경민이는 한 가지 문제점을 발견하였다. 
> 비밀번호가 랜덤으로 만들어져서 기억을 못 한다는 것이었다! 
> 그래서 경민이는 메모장에 사이트의 주소와 비밀번호를 저장해두기로 했다.
> 하지만 컴맹인 경민이는 메모장에서 찾기 기능을 활용하지 못하고 직접 눈으로 사이트의 주소와 비밀번호를 찾았다.
> 메모장에 저장된 사이트의 수가 늘어나면서 경민이는 비밀번호를 찾는 일에 시간을 너무 많이 쓰게 되었다.
> 이를 딱하게 여긴 문석이는 경민이를 위해 메모장에서 비밀번호를 찾는 프로그램을 만들기로 결심하였다! 
> 문석이를 도와 경민이의 메모장에서 비밀번호를 찾아주는 프로그램을 만들어보자.

접근

StringTokenizer로 사이트, 패스워드 조합을 입력받아서 Map에 key값으로 사이트, value값으로 패스워드를 저장한다.
입력이 모두 끝나면 M번만큼 사이트를 입력받으며 Map.get으로 해당 사이트의 패스워드를 가져와 출력한다.

문제해결

> N에 입력받을 사이트,패스워드 조합의 수를 저장하고,
M에 패스워드를 찾으려는 사이트의 수를 저장한다.
> 사이트, 패스워드 조합을 저장할 String, String형 Map을 선언한다.
> N번 StringToeknizer로 입력받아 site, pw로 Map에 저장한다.
> M번 Map에 접근해 입력받은 사이트의 value값인 pw를 가져와 출력한다.

코드

import java.io.*;
import java.util.*;
import java.lang.*;

public class Main {
    //17219번 비밀번호 찾기
    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    static StringTokenizer st;
    static StringBuilder sb = new StringBuilder();
    static int N, M;
    public static void main(String[] args) throws IOException {
        st = new StringTokenizer(br.readLine());
        N = Integer.parseInt(st.nextToken());
        M = Integer.parseInt(st.nextToken());

        Map<String, String> Memo = new HashMap<>();
        while(N-->0) {
            st = new StringTokenizer(br.readLine());
            String site = st.nextToken();
            String pw = st.nextToken();

            Memo.put(site, pw);
        }
        while(M-->0) {
            String fsite = br.readLine();
            sb.append(Memo.get(fsite)).append('\n');
        }
        System.out.print(sb);
    }
}

후기

기본적인 Map사용문제 였다.

0개의 댓글