본문 바로가기
자바 알고리즘

13. 가위바위보

by watergrace2u 2022. 8. 2.
반응형
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

댓글