AtCoder ABC003 B - AtCoderトランプ
使用言語は”Java8 (OpenJDK 1.8.0)”です。
取りあえず要件を満たすようにストレートに書いてみて、「こんな冗長なコードは通らないだろうな」と思ったら、一応結果はACでした。
解説を見ても、基本的なロジックは同じように思います。
AtCoder Beginner Contest 003 解説
import java.util.Scanner; class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String S = sc.next(); String T = sc.next(); String[] arrS = S.split(""); String[] arrT = T.split(""); for (int i = 0; i < S.length(); i++) { // 同じ文字であるかをチェックする if (!arrS[i].equals(arrT[i])) { // もし S 側の文字が "@" だったら、T 側のもじが 'a','t','c','o','d','e','r' の何れであるかをチェックする if (arrS[i].equals("@")) { if (arrT[i].equals("a") || arrT[i].equals("t") || arrT[i].equals("c") || arrT[i].equals("o") || arrT[i].equals("d") || arrT[i].equals("e") || arrT[i].equals("r")) { } else { System.out.println("You will lose"); System.exit(0); } // もし T 側の文字が "@" だったら、S 側のもじが 'a','t','c','o','d','e','r' の何れであるかをチェックする } else if (arrT[i].equals("@")){ if (arrS[i].equals("a") || arrS[i].equals("t") || arrS[i].equals("c") || arrS[i].equals("o") || arrS[i].equals("d") || arrS[i].equals("e") || arrS[i].equals("r")) { } else { System.out.println("You will lose"); System.exit(0); } } else { System.out.println("You will lose"); System.exit(0); } } } // 最後まで NG のチェックにかからなければ、"You can win." System.out.println("You can win"); } }