728x90
https://www.acmicpc.net/problem/1620
1620번: 나는야 포켓몬 마스터 이다솜
첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면
www.acmicpc.net
풀이)
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.StringTokenizer;
public class Main_BJ_1620_나는야포켓몬마스터이다솜 {
public static void main(String[] args) throws Exception{
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> nameHash = new HashMap<>();
HashMap<Integer, String> indexHash = new HashMap<>();
for(int i=1; i<=n; i++) {
String name = br.readLine();
nameHash.put(name, i);
indexHash.put(i, name);
}
for(int i=0; i<m; i++){
String check = br.readLine();
//숫자이면
if(Character.isDigit(check.charAt(0))){
System.out.println(indexHash.get(Integer.parseInt(check)));
}
//문자열이면
else{
System.out.println(nameHash.get(check));
}
}
}//main
}
일단 문제가 너무 웃겼다.ㅋㅋㅋㅋㅋㅋㅋ
그냥 윗 부분은 안 읽고 밑의 조건만 확인해도 충분이 이해가 가능한 문제!
빠르게 검색하기 위해 hash를 두 개 사용해서 만들었다.
또한, 문자열인지 숫자인지 확인하기 위해 Character.isDigit()을 활용했다!
이것만 안다면 간단한 문제~~
728x90
'코테 > 백준' 카테고리의 다른 글
백준 11279 최대 힙(JAVA) (0) | 2023.01.18 |
---|---|
백준 1927 최소 힙(JAVA) (1) | 2023.01.17 |
백준 1931 회의실 배정(JAVA) (0) | 2023.01.16 |
백준 1003 피보나치 함수(JAVA) (0) | 2023.01.15 |
백준 11726 2xn 타일링(JAVA) (0) | 2023.01.14 |