-
[백준/JAVA] 1620번 나는야 포켓몬 마스터 이다솜 - HashMapETC/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; } }