
해쉬맵 관련 문제 풀이중 아주 내 스타일인 문제를 만나서 기록한다!!!우하하하하!!!
나의 정답 코드
package map;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.StringTokenizer;
public class Q4 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
HashMap<String,Integer> poketmon = new HashMap<>();
HashMap<Integer,String> poketmon2 = new HashMap<>();
for (int i = 1; i <= N; i++) {
String name = br.readLine();
poketmon.put(name, i);
poketmon2.put(i, name);
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < M; i++) {
String Q = br.readLine();
if (poketmon.get(Q) != null) {
sb.append(poketmon.get(Q)).append("\n");
} else {
sb.append(poketmon2.get(Integer.parseInt(Q))).append("\n");
}
}
System.out.println(sb);
}
}
킬킬
이 문제를 풀때 처음에 시간초과로 틀렸었다. 키값과 벨류값을 오며가며 비교를했다.
숫자로 문제가 주어지냐, 문자열로 문제가 주어지냐에 따라서 상관관계를 출력하는건데, 이를 어떻게 비교를 할 지 하다가
버퍼리더 때문에 문자열을 받아오는데,
이 문자열을 키값으로 했을때 벨류값을 get해본다.
get특성상 키가 존재하지 않으면 value값이 null로 나오므로
null이 아니라면, 도감 번호를 그대로 get해주면 된다.
반대로, null이 나왔다면, 숫자가 들어왔다는 뜻이니까,
키값과 벨류값을 거꾸로 저장해놓은 포켓몬2 맵 에다가
parseInt해서 벨류값을 출력해준다!!
우하하ㅏ!!!!!
'백준' 카테고리의 다른 글
| [백준]4949: 균형잡힌 세상, 스택 문제풀이 (1) | 2025.01.19 |
|---|---|
| [백준]11478: hashset 이란? , substring복습!!!!!!!!! 음하하음하하하하!!! (2) | 2025.01.17 |
| 소수 찾기-에라토스테네스-백준 17103 (0) | 2025.01.14 |
| 최대공약수, 최소공배수 (0) | 2025.01.11 |
| 자바 정렬(Arrays.sort, compare오버라이딩, compareTo) (0) | 2025.01.08 |