ABOUT ME

Today
Yesterday
Total
  • [JAVA] 알고리즘 문제 - 가위 바위 보
    Java 알고리즘 문제/자바(Java) 알고리즘 문제풀이 입문 2023. 8. 9. 11:13
    반응형

    가위 바위 보

     

    설명

    A, B 두 사람이 가위바위보 게임을 합니다. 총 N번의 게임을 하여 A가 이기면 A를 출력하고, B가 이기면 B를 출력합니다. 비길 경우에는 D를 출력합니다.

    가위, 바위, 보의 정보는 1:가위, 2:바위, 3:보로 정하겠습니다.

    예를 들어 N=5이면

    두 사람의 각 회의 가위, 바위, 보 정보가 주어지면 각 회를 누가 이겼는지 출력하는 프로그램을 작성하세요.

     

    입력

    첫 번째 줄에 게임 횟수인 자연수 N(1<=N<=100)이 주어집니다.

    두 번째 줄에는 A가 낸 가위, 바위, 보 정보가 N개 주어집니다.

    세 번째 줄에는 B가 낸 가위, 바위, 보 정보가 N개 주어집니다.

     

    출력

    각 줄에 각 회의 승자를 출력합니다. 비겼을 경우는 D를 출력합니다.

     

     

    입력예시 

    5
    2 3 3 1 3
    1 1 2 2 3
     
    출력예시 
    A
    B
    A
    B
    D

     

    import java.util.Scanner;
    
    public class Main {
     
    	public String test(int n, int[] arrA, int[] arrB) {
    		String answer = "";
    		
    		for(int i=0; i<n; i++) {
    			if(arrA[i] == arrB[i]) {
    				answer += "D";
    			}else if(arrA[i] == 2 && arrB[i] == 1) {
    				answer += "A";
    			}else if(arrA[i] == 3 && arrB[i] == 2) {
    				answer += "A";
    			}else if(arrA[i] == 1 && arrB[i] == 3){
    				answer += "A";
    			}else {
    				answer +="B";
    			}
    		}
    		
    		return answer;
    
    	}
    	
    	public static void main(String[] args){
    		Main t = new Main();
    		Scanner kb = new Scanner(System.in);
    		
    		int n = kb.nextInt();
    		int[] arrA=new int[n];
    		int[] arrB=new int[n];
    		
    		for(int i=0; i<n; i++) {
    			arrA[i] = kb.nextInt();
    		}
    		
    		for(int i=0; i<n; i++) {
    			arrB[i] = kb.nextInt();
    		}
    		
    		for(char x : t.test(n, arrA, arrB).toCharArray())System.out.println(x);
        }
    }

     

    몇번의 가위바위보를 할지 입력 받고 횟수에 맞게 A와 B가 가위바위보를 한다.

     

    	public String test(int n, int[] arrA, int[] arrB) {
    		String answer = "";
    		
    		for(int i=0; i<n; i++) {
    			if(arrA[i] == arrB[i]) {
    				answer += "D";
    			}else if(arrA[i] == 2 && arrB[i] == 1) {
    				answer += "A";
    			}else if(arrA[i] == 3 && arrB[i] == 2) {
    				answer += "A";
    			}else if(arrA[i] == 1 && arrB[i] == 3){
    				answer += "A";
    			}else {
    				answer +="B";
    			}
    		}
    		
    		return answer;
    
    	}

    arrA[i] == arrB[i] 가 같은경우는 비기는 경우(D)

    A가 바위, B가 가위 / A가 보, B가 바위 / A가 가위, B가 보 이렇게 3가지 경우를 제외하면

    나머지는 B가 이기는 경우이다. 

     

    아주 간단한 가위바위보 문제였다.

    반응형

    댓글

Designed by Tistory.