PS/Problems
[Java] (시간 1등) 백준 1620번 - HashMap
CalicoCat22
2021. 12. 25. 22:33
포켓몬의 개수 N과 문제의 개수 M이 주어진다.
포켓몬은 1번부터 배정되고, 각 문제에 포켓몬의 이름이 입력되면 도감번호를
도감 번호가 입력되면 포켓몬의 이름을 출력한다.
import java.util.*;
import java.io.*;
public class s2_1620_hashmap{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
HashMap<String, Integer> hm = new HashMap<>();
String[] ary = new String[n + 1];
for (int i = 0; i < n; i++) {
String name = br.readLine();
hm.put(name, i + 1);
ary[i + 1] = name;
}
// ary는 index 자체가 도감 번호, 내부에는 포켓몬 이름 저장
// hm는 (포켓몬 이름 : 도감 번호) 관계의 HashMap
for (int i = 0 ; i < m; i++) {
String temp = br.readLine();
if (temp.charAt(0) < 58) {
bw.write(ary[Integer.parseInt(temp)]);
bw.newLine();
}
else {
bw.write(String.valueOf(hm.get(temp)));
bw.newLine();
}
}
// 입력값 종류에 따라 Array와 HashMap 중 무엇을 참고할지 결정
bw.flush();
bw.close();
}
}