📌 문제 설명
A, B 두 사람이 가위바위보 게임을 합니다. 총 N번의 게임을 하여 A가 이기면 A를 출력하고, B가 이기면 B를 출력합니다. 비길 경우에는 D를 출력합니다.
- 가위: 1, 바위: 2, 보: 3으로 정합니다.
📝 입력 & 출력
입력
- 첫 번째 줄에 게임 횟수인 자연수 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
💡 해결 방법
- 각 회의 A와 B의 정보를 비교합니다.
- 비기면 D를 출력합니다.
- 가위바위보 승리 규칙에 따라 승자를 결정하여 결과 배열에 저장합니다.
💻 코드 구현 (Java)
package partArray;
import java.util.*;
public class Problem3 {
public char[] solution(int n, int[] aArr, int[] bArr){
char[] result = new char[n];
for(int i=0; i<n; i++) {
if(aArr[i] == bArr[i]) result[i] = 'D';
else if((aArr[i]==1 && bArr[i]==3) || (aArr[i]==2 && bArr[i]==1) || (aArr[i]==3 && bArr[i]==2)) result[i] = 'A';
else result[i] = 'B';
}
return result;
}
public static void main(String[] args) {
Problem3 T = new Problem3();
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
int[] aArr = new int[n];
int[] bArr = new int[n];
for (int i=0; i<n; i++) {
aArr[i] = kb.nextInt();
}
for (int i=0; i<n; i++) {
bArr[i] = kb.nextInt();
}
for(char x: T.solution(n, aArr, bArr)) {
System.out.println(x);
}
kb.close();
}
}
📖 코드 설명
1️⃣ 결과 배열 초기화
char[] result = new char[n];
- 각 회의 결과를 저장할 배열을 생성합니다.
2️⃣ 가위 바위 보 승리 조건 확인
for(int i=0; i<n; i++) {
if(aArr[i] == bArr[i]) result[i] = 'D';
else if((aArr[i]==1 && bArr[i]==3) || (aArr[i]==2 && bArr[i]==1) || (aArr[i]==3 && bArr[i]==2)) result[i] = 'A';
else result[i] = 'B';
}
- 비긴 경우 D, 승리 조건에 따라 A 또는 B를 저장합니다.
⏳ 시간 복잡도 분석
- 시간 복잡도: O(N)
- 각 회를 한 번씩만 비교하므로 선형 시간 복잡도입니다.
출처: 인프런 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비 강의 | 김태원 - 인프런
김태원 | , 자바(Java) 알고리즘 문제풀이 채점사이트를 통해 기초부터 준비해보세요! 💪 [사진] 이 강의는 [사진] 자바(Java)로 코딩테스트 준비를 하고 계신 분께 추천드려요! 문제는 기초~ 중급
www.inflearn.com
'코딩테스트 > 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비' 카테고리의 다른 글
| 섹션 2. Array - 5. 소수(에라토스테네스 체) (0) | 2025.03.21 |
|---|---|
| 섹션 2. Array - 4. 피보나치 수열 (0) | 2025.03.21 |
| 섹션 2. Array - 2. 보이는 학생 (0) | 2025.03.21 |
| 섹션 2. Array - 1. 큰 수 출력하기 (0) | 2025.03.21 |
| 섹션 1. 문자열 - 12. 암호 (0) | 2025.03.18 |