티스토리 뷰
반응형
문제
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 solution(int a, int b) {
int x = a - b;
if (x == 0) {
return "D";
}
if (Math.abs(x) == 2) {
if (x < 0) {
return "A";
} else {
return "B";
}
}
if (x > 0) {
return"A";
} else {
return "B";
}
}
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int count = Integer.parseInt(scanner.nextLine());
String[] a = scanner.nextLine().split(" ");
String[] b = scanner.nextLine().split(" ");
Main main = new Main();
for (int i=0; i<count; i++) {
System.out.println(main.solution(Integer.parseInt(a[i]), Integer.parseInt(b[i])));
}
}
}
(Time 156ms / Memory 27MB)
[두번째 풀이]
import java.util.Scanner;
public class Main {
public void solution(int c, int[] a, int[] b) {
for (int i=0; i<c; i++) {
if (a[i] == b[i]) {
System.out.println("D");
}
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 ((a[i] == 1 && b[i] == 2) || (a[i] == 2 && b[i] == 3) || (a[i] == 3 && b[i] == 1)) {
System.out.println("B");
}
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int count = scanner.nextInt();
int[] a = new int[count];
int[] b = new int[count];
for (int i=0; i<count; i++) {
a[i] = scanner.nextInt();
}
for (int i=0; i<count; i++) {
b[i] = scanner.nextInt();
}
Main main = new Main();
main.solution(count, a, b);
}
}
(Time 167ms / Memory 27MB)
- A의 값에서 B를 뺀 후, 값이 0이면 "D", 뺀 값이 0이 아닌데 뺀 값의 절대값이 2이면 마이너스일 때 "A", 아니면 "B", 절대값이 2가 아니면 플러스일 때 "A", 아니면 "B"
- 두번째 풀이는 문제 풀이 영상을 보고 뺀 값을 이용하지 않고 if 문으로 정답을 출력하도록 작성해봤다. 내가 짠 게 더 나은듯
반응형
'Java > Coding Test' 카테고리의 다른 글
[코딩테스트] 소수(에라토스테네스 체) (1) | 2022.03.07 |
---|---|
[코딩테스트] 피보나치 수열 (1) | 2022.03.03 |
[코딩테스트] 보이는 학생 (0) | 2022.03.02 |
[코딩테스트] 큰 수 출력하기 (0) | 2022.03.02 |
[코딩테스트] 암호 (0) | 2022.02.28 |