Ruteです。
AtCoder Beginner Contest 166 A問題「A?C」の解説を行います。
問題概要
コンテストの開催ルールは以下のようである。(この問題における)
・ABCが開催された次の週にはARCが開催される
・ARCが開催された次の週にはABCが開催される
先週開催されたコンテストを表す文字列$S$が与えられる。
今週開催されるコンテストを表す文字列を出力せよ。
制約
・$S$は'ABC'
または'ARC'
である
解説
・ABCが開催された次の週にはARCが開催される
・ARCが開催された次の週にはABCが開催される
というルールから、
・$S$が'ABC'
なら今週開催されるのはARC
・$S$が'ARC'
なら今週開催されるのはABC
ということが分かります。
よって、文字列$S$を読み取って上の条件分岐通りの出力をすれば良いです。
$S$の2文字目を読みとってその条件分岐を行うという方法でもACすることは可能ですが、実装が楽なのは前述した方法です。
以下、Python3,C++,Javaでの解答例を示します。
各言語解答例
Python3での解答例
S = input()
if S == "ABC":
print("ARC")
else:
print("ABC")
C++での解答例
#include<bits/stdc++.h>
using namespace std;
int main(){
string S;
cin >> S;
if (S == "ABC"){
cout << "ARC" << endl;
}else{
cout << "ABC" << endl;
}
}
※ Javaでは文字列比較の時にJavaでの解答例
import java.util.Scanner;
public class Main{
public static void main(String[] args)
{
Scanner scan =new Scanner (System.in);
String S = scan.nextLine();
if (S.equals("ABC")){
System.out.println("ARC");
}else{
System.out.println("ABC");
}
}
}
==
ではなく"文字列A".equals("文字列B")
とコーディングしましょう。==
という条件式の場合コンパイルエラーが発生する場合があります。後者の方だと文字列Aが文字列Bと同じかを正しく判定することが出来ます。