Array(1, 2차원 배열) - 0203. 가위 바위 보
private static void solution(int n, String str1, String str2) {
String[] user1 = str1.split(" ");
String[] user2 = str2.split(" ");
for(int i=0; i<n; i++) {
int result = Integer.parseInt(user1[i]) - Integer.parseInt(user2[i]);
if(result == 0) System.out.println("D");
else if(result == -1 || result == 2) System.out.println("B");
else System.out.println("A");
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = Integer.parseInt(sc.nextLine());
String str1 = sc.nextLine();
String str2 = sc.nextLine();
solution(n, str1, str2);
}
public String solution(int n, int[] a, int[] b){
String answer="";
for(int i=0; i<n; i++){
if(a[i]==b[i]) answer+="D";
else if(a[i]==1 && b[i]==3) answer+="A";
else if(a[i]==2 && b[i]==1) answer+="A";
else if(a[i]==3 && b[i]==2) 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[] 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(char x : T.solution(n, a, b).toCharArray()) System.out.println(x);
}
두 플레이어의 정보를 2개의 배열
에 담고, 순회하며 비교하는 간단한 로직이다.
나의 풀이에서는 두 수의 연산 결과의 경우의 수를 따져 승패를 판별하도록 했다.
-1, 2인 경우 B
의 승리, 그 외의 경우 A
의 승리다.
강의에서는 A
의 승리 조건을 나열한 분기문을 통해 판별하도록 구현했다.
좀 더 코드가 간결한 방향으로 로직을 구상해보았으나, 강의 방식이 훨씬 직관적이다.