Algorithm/백준 알고리즘

백준_1620 나는야 포켓몬 마스터 이다솜(자바)/ 자료구조

미스터로즈 2021. 5. 1. 10:40

시간 & 메모리 제한

문제

문제 생략.........

 

문제가 너무 길어서 입력 출력부터 읽어봤는데,,,,

 

이 문제는 입력과 출력만 읽어봐도 어떤 문제인지 파악할 수 있습니다.

 

입력 & 출력

자료구조를 이용한 풀이

package com.Back;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.StringTokenizer;

public class Back_1620 {

	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		StringBuilder sb = new StringBuilder();
		
		int N = Integer.parseInt(st.nextToken());
		int M = Integer.parseInt(st.nextToken());
		HashMap<Integer, String> po1 = new HashMap<Integer, String>(N);
		HashMap<String, Integer> po2 = new HashMap<String, Integer>(N);
		for (int i = 1; i <= N; i++) {
			String temp = br.readLine();
			po1.put(i, temp);
			po2.put(temp, i);
		}
		
		for (int i = 0; i < M; i++) {
			String temp = br.readLine();
			if(temp.charAt(0)<='Z' && temp.charAt(0)>='A') {
				sb.append(po2.get(temp)+"\n");
			}else {
				sb.append(po1.get(Integer.parseInt(temp))+"\n");
			}
		}
		
		System.out.println(sb);
	}
}

dㄻㄴㅇㄹ- HashMap을 이용해서 문제를 해결했습니다.

 

- HsahMap을 이용해서 포켓몬의 번호와 이름을 받았습니다. 또한 반대로도 받았습니다..

 

- for문을 돌려서 A부터 Z 사이인 값을 가지고 있으면 이름의 키를 가지고 번호를 찾고,

 

나머지의 경우에는 숫자를 가지고 이름을 찾으면 됩니다.