import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] s = br.readLine().split(" ");
// 도감
int N = Integer.parseInt(s[0]);
// 문제
int M = Integer.parseInt(s[1]);
// String[] arr = new String[N];
HashMap<Integer, String> intMap = new HashMap<>();
HashMap<String, Integer> strMap = new HashMap<>();
for(int i=0; i<N; i++) {
String ss = br.readLine();
intMap.put(i+1, ss);
strMap.put(ss, i+1);
}
// HashMap 이용해서 문제 해결
for(int i=0; i<M; i++) {
String ss = br.readLine();
try {
int num = Integer.parseInt(ss);
System.out.println(intMap.get(num));
} catch(Exception e) {
System.out.println(strMap.get(ss));
}
}
}
}
Review
- 처음에 문제 해결을 했으나 시간 초과 발생
- 배열에 담아 index를 입력 받으면 value 값을 바로 출력했으나, value를 입력 받을 경우 배열 반복문을 한번 더 돌리게 되어 시간 초과
- 처음에 입력받을 때 2개의 해시맵을 만들어 각각 저장한 후 key를 입력 받아 바로 출력
'Algorithm > 백준' 카테고리의 다른 글
백준 1874 (스택 수열) - Java (0) | 2023.12.02 |
---|---|
백준 11723 (집합) - Java (0) | 2023.11.14 |
백준 18110 (solved.ac) (0) | 2023.10.08 |
자바 내림차순 정렬 하는 법 (0) | 2023.05.01 |
백준 11866 (요세푸스 문제 0) (0) | 2022.09.12 |