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

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

NoviSteps8Q

AtCoder ABC 292 A - CAPS LOCK (8Q, 灰色, 100 点)

文字列の一つ一つの文字を順に処理していこう!!という問題 問題へのリンク 問題概要 英小文字のみからなる文字列 が与えられるので、 の文字をすべて大文字にした文字列 を求めよ。 考えたこと まず、C++ ならば、文字 c を大文字にしたものを返す処理は t…

AtCoder ABC 279 A - wwwvvvvvv (8Q, 灰色, 100 点)

これは面白い! 問題へのリンク 問題概要 文字 v, w のみからなる文字列 が与えられる。 この文字列中の下に尖っている箇所の個数を求めよ(v は 1 個、w は 2 個)。 考えたこと for 文を用いて、文字列 の文字を順に見ていき、それが v ならば 1 を足し、w…

AtCoder ABC 365 A - Leap Year (8Q, 灰色, 100 点)

閏年の問題! 問題へのリンク 問題概要 1583 以上 2024 以下の整数 が与えられる。なお、西暦 年の日数は、 が 4 の倍数でないとき:365 日 が 4 の倍数で、かつ 100 の倍数でないとき:366 日 が 100 の倍数で、かつ 400 の倍数でないとき:365 日 が 400 …

AtCoder ABC 337 A - Scoreboard (8Q, 灰色, 100 点)

for 文の練習。また、2 つの数列を受け取る練習でもある。 問題へのリンク 問題概要 チーム高橋と、チーム青木が、 回対戦した。 回目の対戦では、チーム高橋は 点、チーム青木は 点獲得した。 回の対戦の得点の総和が大きいのはどちらか? 考えたこと の総…

AtCoder ABC 362 A - Buy a Pen (8Q, 灰色, 100 点)

if 文や、関数 min() を扱う練習! 問題へのリンク 問題概要 お店では "Red" のペンが一本 円、"Green" のペンが一本 円、"Blue" のペンが一本 円で売られている。 高橋君は色 ("Red", "Green", "Blue" のいずれか) が嫌いである。色 以外のペンの価格の最小…

AtCoder ABC 363 A - Piling Up (8Q, 灰色, 100 点)

レーティングネタ問題! 問題へのリンク 問題概要 1 以上 299 以下の整数 が与えられる。 よりも大きい最小の 100 の倍数から を引いた値を求めよ。 解法 (1):場合分けして解く 場合分けして考えてしまうのが確実かもしれない。 のとき: より大きい最小の …

AtCoder ABC 267 A - Saturday (8Q, 灰色, 100 点)

if 文を並べる感じ。switch 文が使えるなら、それでも! 問題へのリンク 問題概要 Monday, Tuesday, Wednesday, Thursday, Friday のいずれかの文字列 が与えられる。それぞれ、月曜日、火曜日、水曜日、木曜日、金曜日を表す。 この日から土曜日まで何日で…

AtCoder ABC 258 A - When? (8Q, 灰色, 100 点)

最後の出力が少しややこしいかもしれない。 問題へのリンク 問題概要 21:00 の 分後の時刻を "22:14" のような形式で出力せよ。 制約 解法 まずは時刻を求めよう。 のときは、 時 分 のときは、 時 分 と求められる。 さて、出力するときには「何分」のとこ…

AtCoder ABC 252 A - ASCII code (8Q, 灰色, 100 点)

こういう char 型の扱い方に関する問題は、より難しい問題では当たり前のように登場するので、今のうちに慣れておきたいですね。 問題へのリンク 問題概要 英小文字 a, b, …, z の ASCII 文字コードはこの順に 97, 98, …, 122 である。 97 以上 122 以下の整…

AtCoder ABC 272 A - Integer Sum (8Q, 灰色, 100 点)

for 文の練習! 問題へのリンク 問題概要 個の整数 が与えられる。 の値を求めよ。 解法 まず、答えを表す変数 res を用意しましょう (初期値は 0 とします)。 for 文を用いて、順に A[i] を res に足し込んであげます。 コード #include <bits/stdc++.h> using namespace s</bits/stdc++.h>…

AtCoder ABC 254 A - Last Two Digits (8Q, 灰色, 100 点)

整数として扱っても解けるけど、文字列として処理するのが楽だと思う! 問題へのリンク 問題概要 100 以上の 3 桁の整数 が与えられるので、 の下二桁を出力せよ。 解法 3 桁の整数値を文字列 N として入力を受け取ろう。たとえば、459 という整数は、"459" …

AtCoder ABC 251 A - Six Characters (8Q, 灰色, 100 点)

少し面白い問題! 問題へのリンク 問題概要 長さが 1, 2, 3 のいずれかの文字列 が与えられる。 を繰り返して得られる文字列であって、長さが 6 であるものを答えよ。 考えたこと 次のように考えれば良い。 の長さが 1 のとき: を 6 回繰り返す の長さが 2 …

AtCoder ABC 247 A - Move Right (8Q, 灰色, 100 点)

上手に解釈して問題を解こう! 問題へのリンク 問題概要 0 と 1 のみからなる長さ 4 の文字列 が与えられる。この文字列は、4 マスからなる各マスに人がいるかどうかを表す。 はそのマスに人がいることを表し、 は人がいないことを表す。 今、人がみな右へ移…

JOI 一次予選 2020 (第 1 回) B - 母音を数える (8Q, 難易度 2)

for 文の練習! 問題へのリンク 問題概要 長さ の文字列 が与えられる。 のうち母音字の個数、つまり a,i,u,e,o の個数の総和を求めよ。 解法 文字列 の文字を 1 個ずつ、for 文を使って調べていきましょう。 コード #include <bits/stdc++.h> using namespace std; int</bits/stdc++.h>…

JOI 一次予選 2020 (第 2 回) A - 試験 (8Q, 難易度 1)

楽しい問題! 問題へのリンク 問題概要 3 個の整数 が与えられる。 これらの整数のうち、大きい方から 2 個の和を求めよ。 解法 から、「一番小さい数」を引けば良いでしょう。 のうち一番小さい数は、C++ では、関数 min() を用いて min({A, B, C}) と表せ…

JOI 一次予選 2021 (第 2 回) A - 帰省 (8Q, 難易度 1)

ちょっと細かいところミスった人も多いかもしれないね。 問題へのリンク 問題概要 ビ太郎は帰省することにした。 今日から 日後の午前に実家に着き、今日から 日後の午前に実家を去る。 それを聞きつけたビバ子は、今日から 日後の午後にビ太郎の実家を訪れ…

AtCoder ABC 343 A - Wrong Answer (8Q, 灰色, 100 点)

パズルのような問題! 問題へのリンク 問題概要 0 以上 9 以下の 2 つの整数 が与えられる。 0 以上 9 以下の整数のうち、 とは異なるものを 1 つ求めよ。 考えたこと もし でなければ、0 を出力すれば事足りる。 もし であるならば、0 以外の数 (たとえば 1…

JOI 一次予選 2022 (第 1 回) B - 移動 (8Q, 難易度 1)

少し数学を頑張ろう! 問題へのリンク 問題概要 A 地点から B 地点に移動するのに 時間,B 地点から C 地点に移動するのに 時間かかる。 A 地点から B 地点を経由して C 地点に移動するとき、 時間 30 分以内に移動することができるか判定せよ。 制約 解法 …

AtCoder ABC 348 A - Penalty Kick (8Q, 灰色, 100 点)

ooxooxooxoox... を出力する問題 問題へのリンク 問題概要 髙橋君はサッカーの試合で 回ペナルティキックを蹴る。3 の倍数回目は失敗する。 回分のキックの結果を出力せよ。 解法 for 文を用いて、 について が 3 の倍数のとき:文字 'x' を出力 そうでない…

JOI 一次予選 2023 (第 2 回) B - 三方比較 (8Q, 難易度 1)

if 文の練習! 問題へのリンク 問題概要 2 個の整数 が与えられる。 ならば、-1 ならば、0 ならば、1 を出力せよ。 考えたこと if 文や、if-else 文で処理できる。 コード #include <bits/stdc++.h> using namespace std; int main() { int A, B; cin >> A >> B; if (A < B)</bits/stdc++.h>…

JOI 一次予選 2023 (第 1 回) B - ゾロ目 (8Q, 難易度 1)

数値を文字列型で受け取るのが楽だと思われる。 問題へのリンク 問題概要 2 桁の整数 が与えられる。 がゾロ目であるかどうかを判定せよ。 解法 (1): を文字列型で受け取る 最も楽だと思われる方法は、 の値を文字列型で受け取ることだと思われる。たとえば…

AtCoder ABC 358 A - Welcome to AtCoder Land (8Q, 灰色, 100 点)

if 文の練習! 問題へのリンク 問題概要 2 つの文字列 が与えられる。 = "AtCoder" かつ = "Land" であるかを判定せよ。 解法 = "AtCoder" であるかどうかは if (S == "AtCoder") によって判定できる。 についても同様である。 よって、 = "AtCoder" かつ = …

AtCoder ABC 240 A - Edge Checker (8Q, 灰色, 100 点)

上手に考えることで、実装が複雑になりすぎないようにしたい。 問題へのリンク 問題概要 次の図で 番と 番がつながっているかどうかを判定せよ。 制約 考えたこと という制約を考慮すると、Yes となる場合は、次の 10 通りの場合がある。 これらを順に判定し…

AtCoder ABC 239 A - Horizon (8Q, 灰色, 100 点)

平方根の求め方を確認しておこう 問題へのリンク 問題概要 地上 メートルの高さから見える水平線までの距離は と表される。 地上 メートルの高さから見える水平線までの距離を求めよ。 制約 は整数 解法 の値を求めればよい。 C++ では、 は関数 sqrt() を用…

AtCoder ABC 236 A - chukodai (8Q, 灰色, 100 点)

文字列の index アクセスと、操作 swap をする問題 問題へのリンク 問題概要 英小文字からなる文字列 が与えられる。 の 文字目と 文字目を sawp して得られる文字列を答えよ。 解法 文字列 S の a 文字目は S[a-1] で取得できる。b 文字目は S[b-1] で取得…

AtCoder ABC 233 A - 10yen Stamp (8Q, 灰色, 100 点)

切り上げ処理の練習! 問題へのリンク 問題概要 円ある。10 円増やすことを繰り返して 円以上になるようにしたい。 10 円増やす操作を最小で何回やればよいかを求めよ。 解法 まず、 のときは、もともと 10 円を増やす必要はないので 0 回になる。 の場合は…

AtCoder ABC 232 A - QQ solver (8Q, 灰色, 100 点)

構文解析の基本問題 問題へのリンク 問題概要 "6x4" のような、3 文字の文字列 が与えられる。この計算結果を求めよ。 解法 1 個目の整数値は文字 S[0] を読み取ればよい。これを整数値にするためには、C++ では次のように書ける。 int a = S[0] - '0'; 2 個…

AtCoder ABC 336 A - Long Loong (8Q, 灰色, 100 点)

for 文の練習! 問題へのリンク 問題概要 1 個の "L"、 個の "o"、1 個の "n"、1 個の "g" をこの順に連結して得られる文字列を出力せよ。 解法 途中の「 個の "o"」を出力する部分では for 文が使える。 コード #include <bits/stdc++.h> using namespace std; int main() </bits/stdc++.h>…

AtCoder ABC 341 A - Print 341 (8Q, 灰色, 100 点)

for 文の練習! 問題へのリンク 問題概要 正の整数 が与えられる。 個の 0 と 個の 1 を交互に並べた文字列を出力せよ。 解法 色んな解法が考えられるが、ここでは次のように解釈した。 "10" を 回出力する 最後に "1" を出力する コード #include <bits/stdc++.h> using na</bits/stdc++.h>…

JOI 一次予選 2020 (第 1 回) A - 3 つの整数 (8Q, 難易度 1)

記念すべき「JOI 一次予選」が最初に行われた年の問題。この頃はまだ A 問題も結構難しかったのですね。 問題へのリンク editorial 問題概要 3 個の整数 が与えられる。これらの整数は 1 か 2 のいずれかである。 1 と 2 のうち、どちらの方が多くあるかを判…