https://www.acmicpc.net/problem/1620
맵을 사용하여 포켓몬 도감을 저장한다. 번호를 키로 한 맵, 이름을 키로 한 맵, 총 2가지의 맵을 사용한다.
import java.io.*;
import java.util.*;
public class Main {
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<Integer, String> pokemonOne = new HashMap<>();
HashMap<String, Integer> pokemonTwo = new HashMap<>();
for (int i = 0; i < n; i++) {
String tmp = br.readLine();
pokemonOne.put(i+1, tmp);
pokemonTwo.put(tmp, i+1);
}
for (int i = 0; i < m; i++) {
String tmp = br.readLine();
if (Character.isDigit(tmp.charAt(0))) {
int num = Integer.parseInt(tmp);
bw.write(pokemonOne.get(num)+"\n");
}
else {
bw.write(pokemonTwo.get(tmp) + "\n");
}
}
bw.flush();
bw.close();
}
}
Character.isDigit()
을 사용하여 입력으로 숫자가 들어왔는지 판단한다.