-
[백준/BOJ] 4493번 : 가위 바위 보? (JAVA / 자바)백준 2022. 2. 4. 16:11
안녕하세요~ 코딩하는 코알못 코메인입니다.
https://www.acmicpc.net/problem/4493
- 문제 -
난이도 브론즈 3 문제이다.
자바에서 입력방식은 scanner와 bufferedreader가 있다.
자바를 초반에 접하면 처음에 배우는 입력은 scanner이다. scanner가 bufferedreader보다 편하지만 속도가 느리다.
bufferedreader는 무조건 문자열로 받아오기때문에 정수형이나 실수형 변수에 저장하기 위해서는 입력과 형변환을 해줘야한다.
더 자세한 내용은 아래 글 참고 하면 좋다.
풀이 방법
두 플레이어의 가위바위보 입력값을 대비 후 맞는 값을 변수에 저장.
승자를 가려내는 방법은 한 케이스에서 가위바위보 할때마다 1플레이어가 이기면 0으로 초기화 한 변수에 -1, 2플레이어가 이기면 +1를 한다.
그렇게 한 케이스가 끝났을때 변수가 음수이면 1플레이어가 승리, 양수면 2플레이어가 승리, 0이면 무승부이다.
-풀이-
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int T = Integer.parseInt(br.readLine()); for(int i = 0; i < T; i++) { int N = Integer.parseInt(br.readLine()); //승자를 가려줄 변수 int count = 0; for(int j = 0; j < N; j++) { StringTokenizer st = new StringTokenizer(br.readLine()); String S = st.nextToken(); String S2 = st.nextToken(); if(S.equals("R") && S2.equals("P")) { count++; }else if(S.equals("R") && S2.equals("S")) { count--; }else if(S.equals("P") && S2.equals("R")) { count--; }else if(S.equals("P") && S2.equals("S")) { count++; }else if(S.equals("S") && S2.equals("R")) { count++; }else if(S.equals("S") && S2.equals("P")) { count--; } } if(count < 0) { System.out.println("Player 1"); }else if(count > 0) { System.out.println("Player 2"); }else { System.out.println("TIE"); } } } }
-결과-
아직 코딩 공부가 부족한 필자라 설명과 풀이 방법이 많이 미흡할 수 있다. 코딩 고수분들은 보시고 문제점이 있다면 댓글로 말해주시면 감사한 마음으로 참고 수정 하겠습니다.
'백준' 카테고리의 다른 글
[백준/BOJ] 4619번 : 루트 (JAVA / 자바) (0) 2022.02.04 [백준/BOJ] 4504번 : 배수 찾기 (JAVA / 자바) (0) 2022.02.04 [백준/BOJ] 4388번 : 받아올림 (JAVA / 자바) (0) 2022.02.04 [백준/BOJ] 4153번 : 직각삼각형 (JAVA / 자바) (0) 2022.02.04 [백준/BOJ] 3029번 : 경고 (JAVA / 자바) (0) 2022.02.03