-
728x90
https://www.acmicpc.net/problem/1620
- key를 name으로 가지는 Map을 만들어 준다. value는 포켓몬 번호
- 입력한 값이 문자인 경우, map에서 포켓몬 이름으로 조회 한다.
입력한 값이 숫자인 경우, 배열 index로 빠르게 접근하기 위해, 배열도 하나 만들어 준다.- 찾은 것을 바로 바로 출력하게 되면, 오버 헤드가 쌓여 성능저하가 발생하게 된다. (시간이 매우 오래걸림 ㅠ)
StringBuilder를 사용하자!!
(참고) https://mygumi.tistory.com/83import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.StringTokenizer; public class Main { 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<String, Integer>(); String p_List[] = new String[N + 1]; for (int i = 1; i <= N; i++) { String s = br.readLine(); poketmon.put(s, i); // 이름으로 검색 p_List[i] = s; // 번호로 검색 } StringBuilder sb = new StringBuilder(); for (int i = 0; i < M; i++) { String s = br.readLine(); char c = s.charAt(0); if (!Character.isDigit(c)) sb.append(poketmon.get(s) + "\n"); else { sb.append(p_List[Integer.parseInt(s)] + "\n"); } } System.out.println(sb); } }
'알고리즘 풀이 > 백준' 카테고리의 다른 글
[1697] 백준 - 숨바꼭질(JAVA) (0) 2021.08.04 [1676] 백준 - 팩토리얼 0의 개수(JAVA) (0) 2021.08.04 [1541] 백준 - 잃어버린 괄호(JAVA) (0) 2021.08.02 [1463] 백준 - 1로 만들기(JAVA) (0) 2021.08.02 [1389] 백준 - 케빈 베이컨의 6단계 법칙(JAVA) (0) 2021.08.02 댓글