-
[백준 - 1620번] 나는야 포켓몬 마스터 이다솜 - Java //Wello Horld//Algorithm/BOJ(Baekjoon Online Judge) 2019. 12. 31. 11:42
이번에는 BOJ의 15431620번 문제 "문서 검색나는야 포켓몬 마스터 이다솜" 을 풀어보도록 하자
일단 문제가 너무 길어서 난독증 있으신 분들은 입력과 출력 부분만 읽는것을 추천드립니다;;
내용자체는 재미있긴했어요
입력으로 포켓몬 도감에 수록되어있는 포켓몬의 개수 N과 내가 맞춰야 하는 문제의 개수 M이 주어진다. 그 다음줄부터 N개의 줄만큼 포켓몬의 번호가 1번인 포켓몬부터 N번까지 차례대로 주어진다. 포켓몬은 첫글자만 대문자이고 나머지는 소문자이다. 그 다음 줄부터 M개의 줄만큼 내가 맞춰야 하는 문제가 주어진다. 포켓몬이름이 주어지기도 하고 포켓몬의 번호가 주어지기도 한다.
출력으로 M개의 줄만큼 문제에 대답을 출력하면 되는 문제이다.
성공한 코드는 아래와 같다.
import java.io.*; import java.util.*; public class sample { public static void main(String[] args) throws Exception { 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, Integer> mapA = new HashMap<>(); HashMap<Integer, String> mapB = new HashMap<>(); for(int i = 0; i < N; i++){ String s = br.readLine(); mapA.put(s, i + 1); mapB.put(i + 1, s); } for(int i = 0; i < M; i++){ String s = br.readLine(); if(Character.isDigit(s.charAt(0))){ int a = Integer.parseInt(s); bw.write(mapB.get(a) + "\n"); } else { bw.write(mapA.get(s) + "\n"); } } bw.flush(); br.close(); bw.close(); } }
문제 : https://www.acmicpc.net/problem/1620
혹시 코드에 이상한 부분이나 틀린 부분이 있던지, 이해가 안가는 부분이 있다면 댓글로 알려주세요.
'Algorithm > BOJ(Baekjoon Online Judge)' 카테고리의 다른 글
[백준 - 1966번] 프린터 큐 - Java //Wello Horld// (0) 2019.12.31 [백준 - 1676번] 팩토리얼 0의 개수 - Java //Wello Horld// (0) 2019.12.31 [백준 - 1543번] 문서 검색 - Java //Wello Horld// (0) 2019.12.27 [백준 - 1357번] 뒤집힌 덧셈 - Java //Wello Horld// (0) 2019.12.27 [백준 - 1350번] 진짜 공간 - Java //Wello Horld// (0) 2019.12.27