가위 바위 보
A, B 두 사람이 가위바위보 게임을 합니다. 총 N번의 게임을 하여 A가 이기면 A를 출력, B가 이기면 B를 출력, 비길 경우 D를 출력합니다.
가위, 바위, 보의 정보는 1: 가위, 2:바위, 3:보 로 정하겠습니다.
예를 들어 N의 값으로 5를 입력 후, A의 정보와 B의 정보를 다음과 같이 입력합니다.
입력 값 비교를 통해 각 회를 누가 이겼는지 출력하는 프로그램을 작성하세요
회수 | 1 | 2 | 3 | 4 | 5 |
A의 정보 | 2 | 3 | 3 | 1 | 3 |
B의 정보 | 1 | 1 | 2 | 2 | 3 |
승자 | A | B | A | B | D |
■ 문제 풀이
1) 입력 설명
첫 번째 줄에 게임 횟수인 자연수 N (1<=N<=100)이 주어집니다.
두 번째 줄에는 A가 낸 가위, 바위, 보 정보가 N가 주어집니다.
세 번째 줄에는 B가 낸 가위, 바위, 보 정보가 N가 주어집니다.
2) 출력 설명
각 줄에 각 회의 승자를 출력, 비겼을 경우는 D를 출력
3) 테스트
input :
5
2 3 3 1 3
1 1 2 2 3
output :
A
B
A
B
D
4) 문제 풀이
조건문을 이용하여 비겼을 경우와 A가 이긴 경우를 if-else if문에 작성하고 나머지(else)는 B가 이긴 경우가 된다.
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
private List<String> solution(int[] a, int[] b, int count) {
List<String> answer = new ArrayList<>();
for (int i = 0; i < count; i++) {
if (a[i] == b[i]) {
answer.add("D");
} else if (a[i] == 1 && b[i] == 3) {
answer.add("A");
} else if (a[i] == 2 && b[i] == 1) {
answer.add("A");
} else if (a[i] == 3 && b[i] == 2) {
answer.add("A");
} else {
answer.add("B");
}
}
return answer;
}
public static void main(String[] args) {
Main main = new Main();
Scanner scanner = new Scanner(System.in);
int count = scanner.nextInt();
int[] arrA = new int[count];
int[] arrB = new int[count];
for (int i = 0; i < count; i++) {
arrA[i] = scanner.nextInt();
}
for (int i = 0; i < count; i++) {
arrB[i] = scanner.nextInt();
}
for (String win : main.solution(arrA, arrB, count)) {
System.out.println(win);
}
}
}
'CodingTest Practice' 카테고리의 다른 글
[인프런] 뒤집은 소수 (0) | 2022.04.21 |
---|---|
[인프런] 소수 구하기(에라토스테네스의 체) (0) | 2022.04.15 |
[인프런] 보이는 학생 (0) | 2022.04.11 |
[인프런] 큰 수 출력하기 (0) | 2022.04.11 |
[인프런] 가장 짧은 문자 거리 (0) | 2022.04.05 |