문제설명
소스코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
StringBuilder sb = new StringBuilder();
Map<String, Integer> m = new HashMap<>();
String nameArr[] = new String[N + 1];
for(int i = 1; i <= N; ++i)
{
String name = br.readLine();
m.put(name,i);
nameArr[i] = name;
}
for(int i = 0; i < M; ++i)
{
String input = br.readLine();
try //일단 input을 int타입으로 변환 시도
{
int number = Integer.parseInt(input);
//변환 성공시
sb.append(nameArr[number]);
}catch(Exception e){ //변환 실패시
sb.append(m.get(input));
}
sb.append("\n");
}
System.out.println(sb.toString());
}
}
설명
- 해시맵과 포켓몬 이름을 저장할 String타입 배열을 선언한다.
String 타입 배열은 인덱스가 1부터 시작하므로 N+1개를 할당해야한다. - 포켓몬 이름을 입력받아 해시맵과 배열에 저장한다.
- try-catch문으로 검색을 문자로할지 숫자로 할지 정한다.
- 입력을 int형으로 변환할 수 있으면 배열에서 해당 포켓몬 인덱스를 StringBuilder 버퍼에 저장한다.
입력을 int형으로 변환할 수 없으면 해시맵에서 해당 포켓몬 이름을 StringBuilder 버퍼에 저장한다. - 저장된 StringBuilder 버퍼를 출력한다.
'자료구조 & 알고리즘 > BOJ' 카테고리의 다른 글
[Java] 백준 15단계 - 2485번 문제 (가로수) (0) | 2023.07.28 |
---|---|
[Java] 백준 14단계 - 7785번 문제 (회사에 있는 사람) (0) | 2023.07.27 |
[Java] 백준 15단계 - 1735번 문제 (분수 합) (0) | 2023.07.26 |
[Java] 백준 15단계 - 13241번 문제 (최소공배수) (0) | 2023.07.26 |
[Java] 백준 15단계 - 1934번 문제 (최소공배수) (0) | 2023.07.25 |