Algorithm/기타

[백준 17264번] I AM IRONMAN (Java 풀이)

agility 2020. 3. 8. 15:35

백준알고리즘 17264번 : I AM IRONMAN

 

해킹을 통해 점수를 올리고자 하는 유저가 있는데, 알아낸 정보와 게임을 통해

IRON 티어에서 벗어날 수 있는지 여부를 확인하는 문제이다.

 

해킹을 통해 같이하면 무조건 이기거나 지는 사람의 명단, 벗어나기 위한 점수, 승리시 획득 점수, 패배시 감점 점수

와 같은 정보가 주어진다.

 

나는 HashMap을 이용하여 풀었다.

정보가 주어진 이름과 승패 여부를 HashMap의 Key와 Value에 집어 넣고,

조건에 맞추어, 점수를 깎거나 올려주었다.

 

 

 

소스 ▽

더보기
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;

public class Main { // 17264번 I AM IRONMAN
	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String info1 = br.readLine();
		String[] cnt = info1.split(" ");
		int count = Integer.parseInt(cnt[0]);
		int player = Integer.parseInt(cnt[1]);

		String info2 = br.readLine();
		String[] scr = info2.split(" ");
		int wScore = Integer.parseInt(scr[0]);
		int lScore = Integer.parseInt(scr[1]);
		int gScore = Integer.parseInt(scr[2]);

		HashMap<String, String> hsmp = new HashMap<String, String>();

		for (int i = 0; i < player; i++) {
			String name = br.readLine();
			String[] name2 = name.split(" ");
			hsmp.put(name2[0], name2[1]);
		}

		int score = 0;
		boolean flag = false;
		for (int i = 0; i < count; i++) {
			String who = br.readLine();
			if (hsmp.containsKey(who) && hsmp.get(who).equals("W")) {
				score += wScore;
			} else {
				score -= lScore;
			}
			if (score < 0) {
				score = 0;
			}
			if (score >= gScore) {
				System.out.println("I AM NOT IRONMAN!!");
				flag = true;
				break;
			}

		}
		if (flag == false) {
			System.out.println("I AM IRONMAN!!");
		}

	}

}