Array - 3. はさみ石布

1909 ワード

答案用紙

import java.util.Scanner;

class Main {
	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";
			else if(a[i]==1 && b[i]==3) answer += "A";
			else if(a[i]==3 && b[i]==1) answer += "B";
			else if((a[i] > b[i])) answer += "A";
			else if((b[i] > a[i])) 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];
		for(int i=0; i<n; i++){
			a[i] = kb.nextInt();
		}
		
		int[] b = new int[n];
		for(int i=0; i<n; i++){
			b[i] = kb.nextInt();
		}
		
		for(char x : T.solution(n, a, b).toCharArray()){
			System.out.println(x);
		}
		
		
	}
}

解説

import java.util.Scanner;

class Main {
	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";
			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);
		}
		
	}
}

ぶんせき


正直こんなif文を一つ一つ使って解説になるとは思いませんでした
知恵を絞って答えを考えるので、論理はかえって複雑になった.
解説では、引き分けの場合、/Aが勝った場合、数/剰余はBが勝った場合、if文を記入する.