Notice
Recent Posts
Recent Comments
Link
개발자는 기록이 답이다
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(Array_가위바위보) 본문
https://cote.inflearn.com/contest/10/problem/02-03
(위의 링크는 인프런 로그인 후, 해당 강의를 사지 않으면 접속이 되지 않습니다)
3. 가위 바위 보
예시 입력 1
5
2 3 3 1 3
1 1 2 2 3
예시 출력 1
A
B
A
B
D
내가 푼 풀이(Time: 172ms Memory: 27MB)
a와 b의 값이 가위, 바위, 보 중 어떤 숫자 인지 에 따라 분기처리해서 풀었다.
import java.util.Scanner;
public class Main {
public String solution(int num, int[] a, int[] b) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < num; i++) {
if (a[i] == 1 && b[i] == 2)
sb.append("B");
else if (a[i] == 1 && b[i] == 3)
sb.append("A");
else if (a[i] == 2 && b[i] == 1)
sb.append("A");
else if (a[i] == 2 && b[i] == 3)
sb.append("B");
else if (a[i] == 3 && b[i] == 1)
sb.append("B");
else if (a[i] == 3 && b[i] == 2)
sb.append("A");
else
sb.append("D");
}
return sb.toString();
}
public static void main(String[] args) {
Main T = new Main();
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int[] a = new int[num];
for (int i = 0; i < num; i++) {
a[i] = sc.nextInt();
}
int[] b = new int[num];
for (int i = 0; i < num; i++) {
b[i] = sc.nextInt();
}
String solution = T.solution(num, a, b);
for (int i = 0; i < solution.length() ; i++) {
System.out.println(solution.charAt(i));
}
}
}
강의 풀이(Time: 184ms Memory: 27MB)
조건을 A가 비기는 경우, 이기는 경우로만 해서 분기처리가 훨씬 간단해졌다.
출력할때 toCharArry()로 순회하면서 출력했다.
import java.util.Scanner;
public class Answer {
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";
// A가 이기는 경우들
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";
// 나머지는 B가 이기는 경우
else answer += "B";
}
return answer;
}
public static void main(String[] args) {
Answer T = new Answer();
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] a = new int[n];
int[] b = new int[n];
for (int i = 0; i < n; i++) {
a[i] = sc.nextInt();
}
for (int i = 0; i < n; i++) {
b[i] = sc.nextInt();
}
for (char x : T.solution(n, a, b).toCharArray()) {
System.out.println(x);
}
}
}
'알고리즘 > 인프런 - Java알고리즘 입문' 카테고리의 다른 글
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(Array_에라토스테네스 체) (0) | 2023.09.05 |
---|---|
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(Array_피보나치 수열) (0) | 2023.09.04 |
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(Array_보이는 학생) (0) | 2023.09.04 |
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(Array_큰 수 출력하기) (0) | 2023.09.04 |
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(문자열_암호) (0) | 2023.08.29 |