본문 바로가기

PS

[BOJ]1620번: 나는야 포켓몬 마스터 이다솜

https://www.acmicpc.net/problem/1620

 

1620번: 나는야 포켓몬 마스터 이다솜

첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면

www.acmicpc.net

 

분류 : 자료 구조, 이분 탐색, 이진 검색 트리

더보기
import java.io.*;
import java.util.*;

public class Main {
    static Myscanner sc = new Myscanner();
    static PrintWriter out = new PrintWriter(new BufferedOutputStream(System.out));
    public static void main(String[] args) {
        int N = sc.nextInt();
        int M = sc.nextInt();
        Map<Integer,String> map1 = new HashMap<>();
        Map<String, Integer> map2 = new HashMap<>();
        for(int i=1;i<=N;i++)
        {
            String str = sc.next();
            map1.put(i, str);
            map2.put(str, i);
        }
        for(int i=1;i<=M;i++)
        {
            String s = sc.next();
            if(s.charAt(0)-'0'>=0 && s.charAt(0)-'0'<=9){
                out.println(map1.get(Integer.parseInt(s)));
            }
            else{
                out.println(map2.get(s));
            }
        }        
        out.flush();
    }
}

class Myscanner {
    BufferedReader br;
    StringTokenizer st;

    Myscanner() {
        br = new BufferedReader(new InputStreamReader(System.in));
    }

    String next() {
        while (st == null || !st.hasMoreElements()) {
            try {
                st = new StringTokenizer(br.readLine());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return st.nextToken();
    }

    int nextInt() {
        return Integer.parseInt(next());
    }

    long nextLong() {
        return Long.parseLong(next());
    }

    double nextDouble() {
        return Double.parseDouble(next());
    }
}

map을 이용하여 풀면 되는 문제.

처음에는 map 하나만을 이용해서 해결하려고 했다가 시간 초과가 떠서 map 2개를 만들어

입력받은 String이 숫자일 경우 map1에서 get, 문자일 경우 map2에서 get을 하도록 만들었다.

 

'PS' 카테고리의 다른 글

[BOJ]2352번 : 반도체 설계  (0) 2017.04.20
[BOJ]1890번 : 점프  (0) 2017.04.20
[BOJ]1874번 : 스택 수열  (0) 2017.04.17
[BOJ]1931번 : 회의실 배정  (0) 2017.04.17
[BOJ]1600번 : 말이 되고픈 원숭이  (0) 2017.04.14