けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

論理演算子「&&」「||」を用いる問題

AtCoder ABC 223 A - Exact Price (灰色, 100 点)

えぐいコーナーケースに注意! でもサンプルにあるね。 問題へのリンク 問題概要 財布に 円玉が 1 枚以上入っています。 財布に入っている合計金額がちょうど 円であるようなことが、あり得るかどうかを判定してください。 制約 考えたこと 基本的には「 が …

AtCoder ABC 212 A - Alloy (灰色, 100 点)

if 文を上手に使おう! 問題へのリンク 問題概要 グラムの純金と、 グラムの純銀を混ぜる かつ のときは "Gold" かつ のときは "Silver" かつ のときは "Alloy" と出力せよ。 解法 問題文に書いてある通りに判定しよう。最後の "Alloy" の判定は else のみで…

AtCoder ABC 194 A - I Scream (灰色, 100 点)

問題文が複雑! 問題へのリンク 問題概要 日本において、アイス製品は次の 4 種類に大別されます。 乳固形分が 15 パーセント以上、乳脂肪分が 8 パーセント以上含まれるものを「アイスクリーム」とする 上に当てはまらず、乳固形分が 10 パーセント以上、乳…

AtCoder ABC 191 A - Vanishing Pitch (灰色, 100 点)

不等式の問題! 問題へのリンク 問題概要 高橋君の投げたボールは、速度 で移動し、 秒後から 秒後の間に消える。 ボールから m の位置にいる青木君にとって、ボールが消えていないかどうかを判定せよ。 解法 消えている条件を不等式で書くと、次のようにな…

AtCoder ABC 189 A - Slot (灰色, 100 点)

文字列問題! 問題へのリンク 問題概要 長さ 3 の文字列が与えられる。これが 1 種類の文字のみから成るかどうかを判定せよ。 解法 文字列 S の 3 文字は S[0], S[1], S[2] と表せる。これらが全て等しいということは S[0] == S[1] S[1] == S[2] がともに満…

AtCoder ABC 175 A - Rainy Season (灰色, 100 点)

ちょっと難しい問題。 問題へのリンク 問題概要 3 文字の 'R' と 'S' のみからなる文字列 が与えられる。 において、'R' が最大で何個連続しているかを答えよ。 解法 ありうる文字列は 通りあることに注意しよう。よって、すべての文字列を調べることができ…

AtCoder ABC 168 A - ∴ (Therefore) (灰色, 100 点)

ちょっと一見面倒な問題。 問題へのリンク 問題概要 999 以下の正の整数 が与えられる。 解法 の一の位の値は N % 10 で取得できる。この値を調べればよい。 ここで、コツとして、if-else 文の最後の else のところが最も面倒なものが来るようにしよう。ここ…

AtCoder ABC 162 A - Lucky 7 (灰色, 100 点)

これは文字列で入力を受け取って処理した方が楽! 問題へのリンク 問題概要 3 桁の整数 が与えられる。 の桁の値に 7 が含まれるかどうかを判定せよ。 解法 を整数として処理することもできるが、文字列として受け取った方が楽。 文字列ならば、N[0] と N[1]…

AtCoder ABC 160 A - Coffee (灰色, 100 点)

文字列の index アクセスと、論理演算子「&&」の理解を問う問題。 問題へのリンク 問題概要 長さ 6 の文字列が "coffee" 的であるとは、 3 文字目と 4 文字目が等しい 5 文字目と 6 文字目が等しい という条件をともに満たすことを言います。 与えられた長さ…

AtCoder ABC 158 A - Station and Bus (灰色, 100 点)

ABC-A のスキルではないけど、ソートしてしまうのが楽。 問題へのリンク 問題概要 長さ 3 の文字列 が与えられる。 に含まれる文字は 'A' か 'B' のいずれかである。 この文字列が 'A' と 'B' をともに含むかどうかを判定せよ。 解法 をソートするのが楽だと…

AtCoder ABC 144 A - 9x9 (灰色, 100 点)

if 文も練習できる問題。 問題へのリンク 問題概要 2 個の正の整数 が与えられる。 がかけ算九九の中にあるならばその値を答え、ないならば -1 を答えよ。 解法 かけ算九九にあるという条件は、 if (A <= 9 && B <= 9) というように記述できる。 #include <bits/stdc++.h> u</bits/stdc++.h>…

AtCoder ABC 132 A - Fifty-Fifty (灰色, 100 点)

これはだいぶ難しい問題ですね! 問題へのリンク 問題概要 4 文字の文字列 が与えられる。 がちょうど 2 種類の文字からなり、それらの文字がちょうど 2 個ずつあるかどうかを判定せよ。 解法 色んな解法があると思われる。ここでは、 をアルファベット順に…

AtCoder ABC 131 A - Security (灰色, 100 点)

隣接要素を見る問題。それは何気に結構難しいことだとも思う。 問題へのリンク 問題概要 4 文字の文字列が与えられます。 隣り合う文字が等しい箇所が存在するならば "Bad"、そうでなければ "Good" と答えてください。 解法 次のいずれかを満たせば "Bad" と…

AtCoder ABC 114 A - 753 (灰色, 100 点)

論理演算子が使えるかが問われる。 問題へのリンク 問題概要 整数 が、7 または 5 または 3 であるかを判定せよ。 解法 if 文を用いればよい。「または」を判定するためには、論理演算子「||」が使える。 #include <bits/stdc++.h> using namespace std; int main() { int X</bits/stdc++.h>…

AtCoder ABC 331 A - Tomorrow (灰色, 100 点)

2 回繰り上がる場合 (年末の日) に注意! 問題へのリンク 問題概要 ある暦では、1 年は 月あり、1 月は 日だけある (固定値)。 年 月 日の翌日を答えよ。 解法 年末のパターン、つまり かつ というパターンを見逃さないようにしよう! 年末のときは:答えは …

AtCoder ABC 097 A - Colorful Transceivers (灰色, 100 点)

ちょっと整理するのが大変な問題。 問題へのリンク 問題概要 一直線上の座標 の点に、それぞれ A さん、B さん、C さんがいる。 2 人は、距離が 以内にいるとき、直接的に通信ができる。 A さんと C さんが、直接的に、あるいは間接的に、通信ができるかどう…

AtCoder ABC 094 A - Cats and Dogs (灰色, 100 点)

ほどよい算数の問題! 問題へのリンク 問題概要 猫と犬が合わせて 匹いて、そのうちの 匹は猫であることがわかっている。残りの 匹は猫か犬かわからない。 この中に猫がちょうど 匹いるようなことはありうるかどうかを判定せよ。 解法 不等式を立てる技能が…

AtCoder ABC 077 A - Rotation (灰色, 100 点)

少し空間認識能力が問われるかもしれない。 問題へのリンク 問題概要 2 × 3 のグリッドが与えられる。各マスにはアルファベット文字が書かれている。 このグリッドを 180° 回転して一致するかどうかを判定せよ。 解法 入力を 2 つの文字列 S, T として受け取…

AtCoder ABC 073 A - September 9 (灰色, 100 点)

整数値のままでも解けるし、文字列として受け取って解いてもいい。 問題へのリンク 問題概要 2 桁の整数 が与えられる。 が '9' を含むかどうかを判定せよ。 解法 を整数値で処理する場合は 一の位は N % 10 十の位は N / 10 で求められる。これを利用して判…

AtCoder ABC 067 A - Sharing Cookies (灰色, 100 点)

問題文を読み解くのが少し大変だった。 問題へのリンク 問題概要 2 つの整数 が与えられる。 、、 のいずれかが、3 で割り切れるかどうかを判定せよ。 解法 と と のいずれかが 3 で割り切れるかどうかを、or を表す演算子「||」を用いて調べれば OK。 #incl…

AtCoder ABC 061 A - Between Two Integers (灰色, 100 点)

C++ では if (A <= C <= B) では判定できないことに注意 問題へのリンク 問題概要 3 つの整数 が与えられる。 が 以上 以下であるかを判定せよ。 解法 C >= A かつ C <= B であるかを判定すれば OK。 Python なら if (A <= C <= B) で判定することもできる。…

AtCoder ABC 060 A - Shiritori (灰色, 100 点)

3 つの文字列がしりとりになっているかを判定する問題 問題へのリンク 問題概要 3 つの文字列 が与えられる。 これらが「しりとり」になっているかどうかを判定せよ。 解法 文字列 A の末尾の文字は A.back() で取得できる。 A.back() == B[0] かつ B.back()…

AtCoder ABC 049 A - 居合を終え、青い絵を覆う (灰色, 100 点)

if 文を使う! 問題へのリンク 問題概要 英小文字 が与えられる。 が母音かどうかを判定せよ。 解法 が 'a', 'i', 'u', 'e', 'o' のいずれかであるかを if 文を用いて判定する。 #include <bits/stdc++.h> using namespace std; int main() { char c; cin >> c; if (c == 'a</bits/stdc++.h>…

AtCoder ABC 312 A - Chord (灰色, 100 点)

for 文や set/map を使えると少し楽になるけど、使えなくても解ける。 問題へのリンク 問題概要 3 文字の文字列 が与えられる。 が ACE、BDF、CEG、DFA、EGB、FAC、GBD のいずれかと等しいとき Yes を、そうでないとき No を出力してください。 解法 (1):if…