[BOJ/백준] 1620 나는야 포켓몬 마스터 이다솜 (S4)

2024. 7. 15. 18:15· Algorithm PS/Baekjoon Online Judge
목차
  1. 문제
  2. 풀이
  3. Code

문제

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

풀이

오박사 : 그럼 다솜아 이제 진정한 포켓몬 마스터가 되기 위해 도감을 완성시키도록 하여라. 일단 네가 현재 가지고 있는 포켓몬 도감에서 포켓몬의 이름을 보면 포켓몬의 번호를 말하거나, 포켓몬의 번호를 보면 포켓몬의 이름을 말하는 연습을 하도록 하여라. 나의 시험을 통과하면, 내가 새로 만든 도감을 주도록 하겠네.

 

N개의 줄에 포켓몬의 번호가 1번인 포켓몬부터 N번에 해당하는 포켓몬까지 한 줄에 하나씩 입력을 받고, 입력받은 후에는 M개의 줄에 내가 맞춰야하는 문제가 입력으로 들어온다. 문제가 알파벳으로만 들어오면 포켓몬 번호를 말해야 하고, 숫자로만 들어오면 포켓몬 번호에 해당하는 문자를 출력해야 한다. 

 

즉, HashMap 형태롤 저장을 해야하는데, 성능을 위해서 <포켓몬 이름, 번호>로 저장하는 HashMap과 <번호, 포켓몬 이름>으로 저장하는 HashMap 총 2개를 만들어서 진행한다.

문제를 입력받을 때는 hashNum과 hashName에 모두 값을 넣고, 입력받은 문제가 번호인지, 포켓몬인지는 번호를 기준으로 아스키코드 값을 기준으로 판별한다.

Code

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

public 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;

        st = new StringTokenizer(br.readLine());
        int N = Integer.parseInt(st.nextToken());
        int M = Integer.parseInt(st.nextToken());

        HashMap<Integer, String> hashNum = new HashMap<>();  // <번호, 포켓몬 이름>로 저장하는 HashMap
        HashMap<String, Integer> hashName = new HashMap<>();  // <포켓몬 이름, 번호>로 저장하는 HashMap

        for (int i = 1; i <= N; i++) {  // HashMap에 포켓몬 입력
            String name = br.readLine();
            hashNum.put(i, name);
            hashName.put(name, i);
        }

        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < M; i++) {  // 문제 입력
            String question = br.readLine();
            // 입력받은 문제가 번호인지, 포켓몬인지 판별
            if ( 49 <= question.charAt(0) && question.charAt(0) <= 57) {  // 번호이면?
                sb.append(hashNum.get(Integer.parseInt(question))).append("\n");
            } else {
                sb.append(hashName.get(question)).append("\n");
            }
        }
        bw.write(sb + "");
        bw.flush();
        bw.close();
    }
}

728x90

'Algorithm PS > Baekjoon Online Judge' 카테고리의 다른 글

[BOJ/백준] 24480 알고리즘 수업 - 깊이 우선 탐색 2 (S2)  (0) 2024.07.19
[BOJ/백준] 1012 유기농 배추 (S2)  (1) 2024.07.18
[BOJ/백준] 1926 그림 (S1)  (0) 2024.07.14
[BOJ/백준] 2667 단지번호붙이기 (S1)  (0) 2024.07.13
[BOJ/백준] 6118 숨바꼭질 (S1)  (2) 2024.07.08
  1. 문제
  2. 풀이
  3. Code
'Algorithm PS/Baekjoon Online Judge' 카테고리의 다른 글
  • [BOJ/백준] 24480 알고리즘 수업 - 깊이 우선 탐색 2 (S2)
  • [BOJ/백준] 1012 유기농 배추 (S2)
  • [BOJ/백준] 1926 그림 (S1)
  • [BOJ/백준] 2667 단지번호붙이기 (S1)
kyung.Kh
kyung.Kh
Dev..studynotekyung.Kh 님의 블로그입니다.
kyung.Kh
Dev..studynote
kyung.Kh
전체
오늘
어제
11-10 04:08
  • 분류 전체보기 (76)
    • Algorithm PS (32)
      • Baekjoon Online Judge (32)
      • Programmers (0)
    • Computer Science (8)
      • Databse (2)
      • Operating System (1)
      • Computer Network (0)
      • Computer Architecture (0)
      • Algorithm (4)
      • Java & Spring (1)
    • Spring (29)
      • Spring Boot (1)
      • 스프링 핵심 원리 - 기본편(인프런 김영한) (7)
      • Java (1)
      • 자바 ORM 표준 JPA 프로그래밍 (20)
    • Project (3)
      • 문제 & 해결 (2)
      • 개인 프로젝트 (1)
    • Book (3)
      • 객체지향의 사실과 오해 (3)
    • 우하한테크코스 (1)
      • precourse (1)

최근 글

인기 글

블로그 메뉴

    태그

    • 스프링부트
    • Union-Find
    • 스프링 기본편
    • 그리디
    • 객체지향
    • 재귀
    • BFS
    • 알고리즘
    • DP
    • Graph
    • dfs
    • 스프링 김영한
    • 백준
    • Spring
    • 인프런
    • 스프링
    • 해시를 사용한 집합과 맵
    • springboot
    • 구현
    • JPA
    hELLO · Designed By 정상우.v4.2.2
    kyung.Kh
    [BOJ/백준] 1620 나는야 포켓몬 마스터 이다솜 (S4)
    상단으로

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.