[백준] 1620 : 나는야 포켓몬 마스터 이다솜 (JAVA/자바)

·2021년 7월 27일
0

Algorithm

목록 보기
30/60

문제

BOJ 1620 : 나는야 포켓몬 마스터 이다솜 - https://www.acmicpc.net/problem/1620


풀이

입력으로 주어지는 포켓몬 정보를 잘 저장해두고, 입력으로 숫자가 들어왔다면 그 숫자에 해당하는 포켓몬의 이름을, 문자가 들어왔으면 그 포켓몬의 이름에 해당하는 번호를 출력하면 된다.

문자와 숫자 모두 답을 내야하기 때문에 HashMap을 2개 만들어서 각각 Integer->String, String->Integer로 매핑되도록 구현했다.

입력으로 들어온 문자열이 숫자라면 Integer를 key로 가지는 Map에서 꺼내고, 문자라면 String을 key로 가지는 Map에서 꺼내오면 된다!


코드

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

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] inputs = br.readLine().split(" ");
        int n = Integer.parseInt(inputs[0]);
        int m = Integer.parseInt(inputs[1]);

        HashMap<Integer, String> map_int = new HashMap<>();
        HashMap<String, Integer> map_str = new HashMap<>();
        for (int i = 1; i <= n; i++) {
            String name = br.readLine();
            map_int.put(i, name);
            map_str.put(name, i);
        }

        StringBuilder sb = new StringBuilder();
        for (int i = 1; i <= m; i++) {
            String tmp = br.readLine();
            if(isNum(tmp)){
                sb.append(map_int.get(Integer.parseInt(tmp))+"\n");
            }else{
                sb.append(map_str.get(tmp)+"\n");
            }
        }

        System.out.println(sb);
    }

    public static boolean isNum(String str) {
        for (int i = 0; i < str.length(); i++) {
            if (!Character.isDigit(str.charAt(i))) {
                return false;
            }
        }
        return true;
    }
}

정리

✔ 알고리즘 분류 - 자료 구조, 해시를 사용한 집합과 맵
✔ 난이도 - ⚪ Silver 4

🤦‍♀️ 오늘의 메모

  • 오랜만에 깔끔하게 통과한 문제 ㅎㅎ
  • 입력받은 문자열이 숫자인 지 판별하는 코드 잘 알아둘 것.
public static boolean isNum(String str) {
    for (int i = 0; i < str.length(); i++) {
        if (!Character.isDigit(str.charAt(i))) {
            return false;
        }
    }
    return true;
}

참고 사이트

딱히 없음

profile
당근먹고 자라나는 개발자

0개의 댓글