[Java] 백준 1620 나는야 포켓몬 마스터 이다솜

Lee GaEun·2025년 4월 24일

[Java] 알고리즘

목록 보기
63/93

1620 나는야 포켓몬 마스터 이다솜 문제 링크

문제


#1

import java.awt.*;
import java.io.*;
import java.util.*;

class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st = new StringTokenizer(br.readLine());

        int N = Integer.parseInt(st.nextToken());
        int M = Integer.parseInt(st.nextToken());

        HashMap<String, String> dictionary = new HashMap<>();
        String monster;
        for(int i=1; i<=N; i++) {
            monster = br.readLine();
            dictionary.put(String.valueOf(i), monster);
        }
        String result;
        for(int j=0; j<M; j++) {
            monster = br.readLine();
            result = dictionary.get(monster);
            if(result==null) {
                for(int i=1; i<=N; i++) {
                    if(dictionary.get(String.valueOf(i)).equals(monster)) {
                        result = String.valueOf(i);
                        break;
                    }
                }
            }
            bw.write(result+"\n");
        }
        bw.flush();
        bw.close();
    }
}

  • 해시 맵으로 하는 게 맞을 것 같은데..
  • 아마 value로 key를 찾는 과정이 문제일 것 같은데..

#2

import java.awt.*;
import java.io.*;
import java.util.*;

class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st = new StringTokenizer(br.readLine());

        int N = Integer.parseInt(st.nextToken());
        int M = Integer.parseInt(st.nextToken());

        HashMap<String, String> dictionaryK = new HashMap<>();
        HashMap<String, String> dictionaryV = new HashMap<>();
        String monster;
        for(int i=1; i<=N; i++) {
            monster = br.readLine();
            dictionaryK.put(String.valueOf(i), monster);
            dictionaryK.put(monster, String.valueOf(i));
        }
        String result;
        for(int j=0; j<M; j++) {
            monster = br.readLine();
            result = dictionaryK.get(monster);
            if(result==null) {
                result = dictionaryV.get(monster);
            }
            bw.write(result+"\n");
        }
        bw.flush();
        bw.close();
    }
}

  • 당연히 메모리 초과 날 줄 알았는데..
  • 이게 되네..
profile
I will give it my all (๑•̀o•́๑)ง

0개의 댓글