백준 17264 - I AM IRONMAN
Updated:
Java
17264 번 - I AM IRONMAN
문제
접근 방법
HashMap을 사용하여,
- 이길 수 있는 경우 W,
- 무조건 지는 경우 L
- 결과를 알 수 없는 경우 를 확인한다.
점수의 경우 0점보다 떨어질 수 없으므로, 점수 차감 시 3항 연산자를 활용하여 점수가 0보다 떨어지지 않는지 체크하였다.
코드
import java.util.*;
import java.io.*;
public class Main {
static int n,m;
static int W, L, G;
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer stk = new StringTokenizer(br.readLine());
n = stoi(stk.nextToken());
m = stoi(stk.nextToken());
stk = new StringTokenizer(br.readLine());
W = stoi(stk.nextToken());
L = stoi(stk.nextToken());
G = stoi(stk.nextToken());
Map<String, String> map = new HashMap<>();
for(int i = 0; i < m; i++) {
stk = new StringTokenizer(br.readLine());
map.put(stk.nextToken(), stk.nextToken());
}
int score = 0;
String curP;
boolean isWin = false;
for(int i = 0; i < n; i++) {
curP = br.readLine();
if(map.containsKey(curP)) {
if(map.get(curP).equals("W")) {
score += W;
}
else {
score = score - L < 0 ? 0 : score - L;
}
} else {
score = score - L < 0 ? 0 : score - L;
}
if(score >= G) {
isWin = true;
break;
}
}
if(isWin) {
System.out.println("I AM NOT IRONMAN!!");
} else {
System.out.println("I AM IRONMAN!!");
}
}
public static int stoi(String str){
return Integer.parseInt(str);
}
}