문제 링크
주의사항
- JAVA를 사용하여 프로그램을 사용하였습니다.
- 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다.
public class Main{
public static void main(String[] args){
}
}
문제 설명
접근 방법
이 문제에 핵심
1. N개의 사이트 주소와 비밀번호가 주어집니다.
2. M개의 사이트에 대한 비밀번호를 결과로 출력합니다.
알고리즘 진행 순서.
1. 입력된 정보를 저장합니다.
2. N개의 사이트 주소(Key)와 비밀번호(Value)를 HashMap에 저장합니다.
3. M개의 사이트의 비밀번호를 결과로 출력합니다.
사이트 주소 및 비밀번호 저장
HashMap<>은 (Key, Value)값으로 저장되는 자료구조입니다.
예를 들어 www.tistory.com 사이트에 비밀번호가 qweqwe이면
HashMapKey : www.tistory.comValue : qweqwe형태로 저장되며
나중에
www.tistory.com 해당 사이트에 비빌번호를 찾으려면
HashMap에서 www.tistory.com(Key)값에 에 대응하는 값 qweqwe를 가져올 수 있습니다.
예제입력 1.
1. 입력된 정보를 저장합니다.
N : 16
M : 4
N개의 사이트 및 비밀번호 정보
사이트 : noj.am 비밀번호 : IU
사이트 : acmicpc.net 비밀번호 : UAENA
사이트 : startlink.io 비밀번호 : THEKINGOD
사이트 : google.com 비밀번호 : ZEZE
사이트 : nate.com 비밀번호 : VOICEMAIL
사이트 : naver.com 비밀번호 : REDQUEEN
사이트 : daum.net 비밀번호 : MODERNTIMES
사이트 : utube.com 비밀번호 : BLACKOUT
사이트 : zum.com 비밀번호 : LASTFANTASY
사이트 : dreamwiz.com 비밀번호 : RAINDROP
사이트 : hanyang.ac.kr 비밀번호 : SOMEDAY
사이트 : dhlottery.co.kr 비밀번호 : BOO
사이트 : duksoo.hs.kr 비밀번호 : HAVANA
사이트 : hanyang-u.ms.kr 비밀번호 : OBLIVIATE
사이트 : yd.es.kr 비밀번호 : LOVEATTACK
사이트 : mcc.hanyang.ac.kr 비밀번호 : ADREAMER
M개의 사이트
startlink.io
acmicpc.net
noj.am
mcc.hanyang.ac.kr
2. N개의 사이트 주소(Key)와 비밀번호(Value)를 HashMap에 저장합니다.
HashMap<>
Key(사이트) | Value(비밀번호) |
noj.am | IU |
acmicpc.net |
UAENA |
startlink.io | THEKINGOD |
google.com | ZEZE |
nate.com | VOICEMAIL |
naver.com | REDQUEEN |
daum.net | MODERNTIMES |
utube.com | BLACKOUT |
zum.com | LASTFANTASY |
dreamwiz.com | RAINDROP |
hanyang.ac.kr | SOMEDAY |
dhlottery.co.kr | BOO |
duksoo.hs.kr | HAVANA |
hanyang-u.ms.kr | OBLIVIATE |
yd.es.kr | LOVEATTACK |
mcc.hanyang.ac.kr | ADREAMER |
3. M개의 사이트의 비밀번호를 결과로 출력합니다.
M개의 사이트
startlink.io
acmicpc.net
noj.am
mcc.hanyang.ac.kr
Key(사이트) | Value(비밀번호) |
noj.am | IU |
acmicpc.net |
UAENA |
startlink.io | THEKINGOD |
google.com | ZEZE |
nate.com | VOICEMAIL |
naver.com | REDQUEEN |
daum.net | MODERNTIMES |
utube.com | BLACKOUT |
zum.com | LASTFANTASY |
dreamwiz.com | RAINDROP |
hanyang.ac.kr | SOMEDAY |
dhlottery.co.kr | BOO |
duksoo.hs.kr | HAVANA |
hanyang-u.ms.kr | OBLIVIATE |
yd.es.kr | LOVEATTACK |
mcc.hanyang.ac.kr | ADREAMER |
THEKINGOD
UAENA
IU
ADREAMER
결과로 출력합니다.
- BufferedReader를 사용하여 입력되는 정보를 저장합니다.
- StringTokenizer를 이용하여 사이트 및 주소를 띄어쓰기 기준 나누었습니다.
- N개에 사이트와 비밀번호를 HashMap에 저장합니다.
- M개 사이트 주소에 대한 비밀번호를 HashMap을 통해 얻어서 결과로 BufferedWriter에 저장하였습니다.
- BufferedWriter에 저장된 결과값을 출력하였습니다.
결과코드
import java.util.*;
import java.io.*;
class Main {
public static void main(String args[]) throws IOException{
//입력값 처리하는 BufferedReader
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//결과값 출력하는 BufferedWriter
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
//HashMap<>
HashMap<String, String> password = new HashMap<>();
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
//N개의 사이트와 비밀번호를 HashMap에 저장
for(int i=0;i<N;i++){
st = new StringTokenizer(br.readLine());
String site = st.nextToken(); //Key
String ps = st.nextToken(); //Value
password.put(site, ps);
}
//M개의 사이트에 대한 비밀번호 BufferedWriter 저장
for(int i=0;i<M;i++){
String site = br.readLine();
bw.write(password.get(site) + "\n");
}
bw.flush(); //결과 출력
bw.close();
br.close();
}
}
'백준' 카테고리의 다른 글
[백준] 알고리즘 분류(그래프 탐색,JAVA)11403번, 경로 찾기 (0) | 2023.01.20 |
---|---|
[백준] 알고리즘 분류(문자열,JAVA)5525번, IOIOI (0) | 2023.01.20 |
[백준] 알고리즘 분류(자료구조,JAVA)7662번, 이중 우선순위 큐 (0) | 2023.01.18 |
[백준] 알고리즘 분류(분할 정복,JAVA)1074번, Z (0) | 2023.01.18 |
[백준] 알고리즘 분류(트리,JAVA)16437번, 양 구출 작전 (0) | 2023.01.17 |
댓글