반응형
SMALL
# 풀이 1 - 하나하나 다 따져보기 (별로...)
package Algorithm;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
/*
* 1-2 => 2가 승
* 1-3 => 1이 승
* 2-3 => 3이 승
*/
public ArrayList<Character> solution(int n,int []Aarr, int []Barr) {
ArrayList<Character> answer = new ArrayList<>();
for(int i=0;i<n;i++) {
if(Aarr[i]==1) {
if(Barr[i]==2) answer.add('B');
else if(Barr[i]==3) answer.add('A');
else answer.add('D');
}else if(Aarr[i]==2) {
if(Barr[i]==1) answer.add('A');
else if(Barr[i]==3)answer.add('B');
else answer.add('D');
}else {
if(Barr[i]==1) answer.add('B');
else if(Barr[i]==2) answer.add('A');
else answer.add('D');
}
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
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);
}
}
}
# 풀이 2 - 다시 정돈!!
* 풀이 1에서 고칠점
1) 굳이 ArrayList<Character> 를 안쓰고 String을 써도 된다...
2) if문을 가위일 때, 바위일 때, 보일 때로 맞추지 말고, 'A가 이길 때', 'B가 이길 때', '비길 때'로 초점을 맞추자.
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
/*
* 1-2 => 2가 승
* 1-3 => 1이 승
* 2-3 => 3이 승
*/
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";
// 그게 아닌 경우
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);
}
}
}
반응형
LIST
'자바 알고리즘' 카테고리의 다른 글
15. 봉우리 (0) | 2022.08.05 |
---|---|
14. 뒤집은 소수 (0) | 2022.08.03 |
12. 보이는 학생 (0) | 2022.08.02 |
11. 문자열 압축 (0) | 2022.07.06 |
10. 가장 짧은 문자거리 (0) | 2022.07.05 |
댓글