백준 Baekjoon 4493번 가위 바위 보? - JAVA

Jaeho Kim·2022년 4월 20일
0

코딩테스트

목록 보기
47/110

https://www.acmicpc.net/problem/4493

문제
가위 바위 보는 두 명이서 하는 게임이다. 보통 미리 정해놓은 수 만큼 게임을 하고, 많은 게임을 이긴 사람이 최종 승자가 된다.
가위 바위 보를 한 횟수와 매번 두 명이 무엇을 냈는지가 주어졌을 때, 최종 승자를 출력하는 프로그램을 작성하시오.
바위는 가위를 이긴다.
가위는 보를 이긴다.
보는 바위를 이긴다.
입력
첫째 줄에는 테스트 케이스의 개수 t(0 < t < 1000)가 주어진다. 각 테스트 케이스의 첫째 줄에는 가위 바위 보를 한 횟수 n(0 < n < 100)이 주어진다. 다음 n개의 줄에는 R, P, S가 공백으로 구분되어 주어진다. R, P, S는 순서대로 바위, 보, 가위이고 첫 번째 문자는 Player 1의 선택, 두 번째 문자는 Player 2의 선택이다.

출력
각 테스트 케이스에 대해서 승자를 출력한다. (Player 1 또는 Player 2) 만약, 비겼을 경우에는 TIE를 출력한다.

예제 입력 1

3
2
R P
S R
3
P P
R S
S R
1
P R

예제 출력 1

Player 2
TIE
Player 1
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);

		int N = Integer.parseInt(scan.nextLine());
		for (int i = 0; i < N; i++) { // round
			int G = Integer.parseInt(scan.nextLine());
			int score = 0;
			for (int j = 0; j < G; j++) { // game
				String[] str = scan.nextLine().split(" ");
				if (!str[0].equals(str[1])) {
					if (str[0].equals("R")) {
						if (str[1].equals("S"))
							++score;
						else if (str[1].equals("P"))
							--score;
					} else if (str[0].equals("P")) {
						if (str[1].equals("S"))
							--score;
						else if (str[1].equals("R"))
							++score;
					} else if (str[0].equals("S")) {
						if (str[1].equals("R"))
							--score;
						else if (str[1].equals("P"))
							++score;
					}
				}
			}

			String ret = "";
			if (score > 0)
				ret = "Player 1";
			else if (score < 0)
				ret = "Player 2";
			else
				ret = "TIE";
			System.out.println(ret);
		}

		scan.close();
	}
}
  • 설명
profile
Hello, World!

0개의 댓글