ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [백준/JAVA] 1620번 나는야 포켓몬 마스터 이다솜 - HashMap
    ETC/Algorithm 2023. 6. 9. 10:19

    풀이

    문자열인지 정수형인지 판단?

    Character.isDigit() 메소드를 사용하여 문자열인지 정수형인지 판단한다.
    정수형이면 true값이 나온다.
    문자열 전체를 조회해서 정수형에서 나올 수 없는 내용이면 false가 한번이라도 나오게 되면 그 문자열은 정수형이 아니다.

    자료형 선택

    문자열이 입력되면 정수형으로 몇 번째 포켓몬인지 출력되어야 하므로 HashMap을

    정수형이 입력되면 문자열으로 포켓몬 이름이 출력되어야 하므로 ArrayList를 사용하였다.

    코드

    제출 코드

    import java.io.*;
    import java.util.*;
    
    class Main {
        static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
    
        public static void main(String[] args) throws IOException {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
            StringBuilder sb = new StringBuilder();
            StringTokenizer st = new StringTokenizer(br.readLine(), " ");
    
            int N = Integer.parseInt(st.nextToken());
            int M = Integer.parseInt(st.nextToken());
    
            HashMap<String, Integer> hmap = new HashMap<>();
            ArrayList<String> arr = new ArrayList<>();
    
            for (int i = 0; i < N; i++) {
                String name = br.readLine();
    
                hmap.put(name, i);
                arr.add(name);
            }
    
            for (int i = 0; i < M; i++) {
                String input = br.readLine();
    
                if (checkStr(input)) {
                    sb.append(hmap.get(input)+1).append("\n");
                } else {
                    sb.append(arr.get(Integer.parseInt(input) - 1)).append("\n");
                }
            }
    
            bw.write(sb.toString());
            bw.flush();
        }
    
        // 문자열이 정수인지 문자열인지 판단하는 메소드, 문자열이면 false / 정수면 true
        static boolean checkStr(String str) {
            for (int i = 0; i < str.length(); i++) {
                if (!Character.isDigit(str.charAt(i))) {
                    return true;
                }
            }
            return false;
        }
    }

    댓글

Designed by black7375.