for 文や set/map を使えると少し楽になるけど、使えなくても解ける。
問題概要
3 文字の文字列 が与えられる。
が ACE、BDF、CEG、DFA、EGB、FAC、GBD のいずれかと等しいとき Yes を、そうでないとき No を出力してください。
解法 (1):if 文で頑張る
#include <bits/stdc++.h> using namespace std; int main() { string S; cin >> S; if (S == "ACE" || S == "BDF" || S == "CEG" || S == "DFA" || S == "EGB" || S == "FAC" || S == "GBD") { cout << "Yes" << endl; } else { cout << "No" << endl; } }
解法 (2):set に入れる
#include <bits/stdc++.h> using namespace std; int main() { set<string> se({"ACE", "BDF", "CEG", "DFA", "EGB", "FAC", "GBD"}); string S; cin >> S; if (se.count(S)) cout << "Yes" << endl; else cout << "No" << endl; }