본문 바로가기

JAVA/백준

백준 17219번: 비밀번호 찾기

728x90
반응형

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

N개의  사이트와 그 비밀번호를 입력받고,
M개의 사이트를 입력받은 후 그 M개의 사이트에 대한 비밀번호를 출력하는 문제이다.

 

사이트와 비밀번호가 연계되어있어서 HashMap을 사용해주기로 하였다.

질문에서 원하는 건 사이트 주소로 비밀번호를 찾는 것이므로

사이트 주소를 Map의 키로, 그 비밀번호를 value값으로 저장해주었다.

다음으로 M개의 사이트를 입력받으면 get함수로 입력받은 사이트 주소 비밀번호를 StringBuilder에 저장해주었다. 

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

public class Main {
  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
    HashMap<String, String> hm = new HashMap<>();
    StringBuilder sb = new StringBuilder();
    
    //Input data
    StringTokenizer st = new StringTokenizer(br.readLine());
    int N = Integer.parseInt(st.nextToken());
    int M = Integer.parseInt(st.nextToken());
    
    for (int i = 0; i < N; i++) {
      st = new StringTokenizer(br.readLine());
      hm.put(st.nextToken(), st.nextToken());
    }

    //Query
    for (int i = 0; i < M; i++) {
      String key = br.readLine();
      if (hm.containsKey(key)) sb.append(hm.get(key) + "\n");
    }

    //Output
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
    bw.write(String.valueOf(sb));
    bw.flush();
    bw.close(); 
  }
}
반응형

'JAVA > 백준' 카테고리의 다른 글

백준 1436번 : 1로 만들기  (0) 2024.05.07
백준 1003번: 피보나치 함수  (0) 2024.05.06
백준 11399번: ATM  (0) 2024.05.04
백준 11047번: 동전 0  (0) 2024.05.03
백준 1764번: 듣보잡  (0) 2024.05.02