본문 바로가기

Java/Java 알고리즘 인프런

[Ch.02 - Array] 03. 가위 바위 보

반응형
3. 가위 바위 보
 

설명

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

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

예를 들어 N=5이면

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

입력

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

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

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

출력

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

 

예시 입력 1 

5
2 3 3 1 3
1 1 2 2 3

예시 출력 1

A
B
A
B
D

 

(1) A가 이기는 경우 3가지

(2) 비기는 경우 3가지

(3) 그 외

import java.util.Scanner;
  
public class Main {
  public static void main(String[] args){
    Scanner kb=new Scanner(System.in);
    int n = kb.nextInt();
    int [] a=new int[n];
    int [] b=new int[n];
    for(int i=0;i<n;i++){
      a[i]=kb.nextInt();
    }
    for(int i=0;i<n;i++){
      b[i]=kb.nextInt();
    }
    for(int i=0;i<n;i++){
      if(a[i]==3&&b[i]==2 || a[i]==2&&b[i]==1 || a[i]==1&&b[i]==3){
        System.out.println("A");
      }
      else if(b[i]==a[i]){
        System.out.println("D");
      }
      else{
        System.out.println("B");
      }
    }
  }
}

 

(1) 가위 : 1, 보 :3 제외 모두 클 때 이김

(2) 클 때 

(3) 비길 때

import java.util.Scanner;
  
public class Main {
  public static void main(String[] args){
    Scanner in=new Scanner(System.in);
    int n = in.nextInt();
    int[] arr1 = new int[n];
    int[] arr2 = new int[n];
    for(int i=0;i<n;i++){
      arr1[i]=in.nextInt();
    }
    for(int i=0;i<n;i++){
      arr2[i]=in.nextInt();
    }
    solution(n, arr1, arr2);

  }
  static void solution(int n, int[] arr1 ,int[] arr2){
    char[] answer = new char[n];
    //1:가위 2:바위 3:보
    for(int i=0;i<n;i++){
      if(arr1[i]==1 && arr2[i]==3){
        answer[i]='A';
      }
      else if(arr2[i]==1 && arr1[i]==3){
        answer[i]='B';
      }
      else if(arr1[i]>arr2[i]) answer[i]='A';
      else if(arr1[i]<arr2[i]) answer[i]='B';
      else if(arr1[i]==arr2[i]) answer[i]='D';
    }
    
    for(char x: answer) System.out.println(x);
  }
}

import java.util.Scanner;
  
public class Main {
  public static void main(String[] args){
    Scanner in=new Scanner(System.in);
    int n=in.nextInt();
    int[] A = new int[n];
    int[] B = new int[n];
    for(int i=0;i<n;i++){
      A[i]=in.nextInt();
    }
    for(int i=0;i<n;i++){
      B[i]=in.nextInt();
    }
    
    for(int i=0;i<n;i++){
      if(A[i]==B[i]){
        System.out.println("D");
      }else if(A[i]==2&&B[i]==1||A[i]==3&&B[i]==2||A[i]==1&&B[i]==3){
        System.out.println("A");
      }else{
        System.out.println("B");
      }
    }
  }
}
반응형