2024-08-01から1ヶ月間の記事一覧
再帰関数を使った全探索の練習! こういうのは本当に練習になる。 問題へのリンク 問題概要 各マスが 0 または 1 であるような の二次元グリッド が与えられる。 グリッド上の各マスを渡り歩いていく移動経路のうち、次の条件を満たすものを考える。 1 回の…
for 文の練習問題! 問題へのリンク 問題概要 HP が であるモンスターを倒したい。 種類の必殺技を順に使っていく。 種類目の必殺技はモンスターの HP を だけ減らすことができる。 モンスターの HP を 0 以下にすることができるかどうかを判定せよ。 考えた…
if 文や else if 文の練習! 問題へのリンク 問題概要 高橋君は 枚、青木君は 枚のクッキーをもっている。 高橋君は 回次の行動をとる。 自分のクッキーが残っていたら、それを 1 枚食べる 残っていなくて、青木君のクッキーが残っていたら、それを 1 枚食べ…
楽しい for 文の練習問題! 問題へのリンク 問題概要 ともに長さが である 2 つの文字列 が与えられる。 の 1 文字目、 の 1 文字目、 の 2 文字目、 の 2 文字目、... の順に文字を連結して得られる文字列を答えよ。 考えたこと 次のように考えれば良いだろ…
for 文の練習問題! 問題へのリンク 問題概要 個の整数 のうち、 以上であるものの個数を求めよ。 考えたこと for 文を用いて、 に対して、 以上であるかどうかを判定していこう。 以上:答えを表す変数を 1 増やす そうでない:何もしない というようにすれ…
文字列の易しい練習問題! 問題へのリンク 問題概要 文字列 が与えられる。 のすべての文字を 'x' で置き換えたものを出力せよ。 考えたこと まず、文字列 S の長さ N は次のように取得できる(C++)。 int N = S.size(); その先はいくつかやり方がある。 fo…
ちょっとした算数の問題 問題へのリンク 問題概要 3 個の整数 が黒板に書かれている。 今、「3 個の整数のうち 1 つを選び、それを 2 倍した値に書き換える」という操作を 回行う。 操作後の 3 個の整数の和の最大値を求めよ。 制約 考えたこと 基本的な戦略…
算数的な問題 問題へのリンク 問題概要 高橋君は金色の硬貨が好きです。自分が持っている 500 円硬貨 1 枚につき 1000、5 円硬貨 1 枚につき 5 の「嬉しさ」を得る。 高橋君が 円もっているとき、高橋君の「嬉しさ」の最大値はいくらか? 制約 考えたこと コ…
上手に場合分けして解いていこう。 問題へのリンク 問題概要 1 が書かれたカードが 枚、0 が書かれたカードが 枚、 −1 が書かれたカードが 枚ある。 これらのカードから、ちょうど 枚を選んで取るとき、取ったカードに書かれた数の和として、 ありうる値の最…
この問題は、ハミング距離と呼ばれる超重要概念! 問題へのリンク 問題概要 2 つの長さが等しい文字列 が与えられる。次の操作を繰り返して を に変更するとき、操作回数の最小値を求めよ。 操作: の 1 文字を選んで別の文字に書き換える 制約 考えたこと …
for 文のいい練習問題! 問題へのリンク 問題概要 高橋君は 問のクイズに答える。最初 点であり、正解すると 1 点増加する。不正解だと 1 点減少するが、不正解前に 0 点である場合は減らない。 高橋君が各問題に正解したかどうかを表す文字列 が与えられる…
文字列の長さを取得する練習! 問題へのリンク 問題概要 3 文字以上の文字列 が与えられる。この文字列 を次の規則にしたがって変換したものを出力せよ。 (先頭の文字)(先頭と末尾を除外した文字列の長さを表す数値)(末尾の文字) たとえば、"internationaliz…
簡単な if 文の問題! 問題へのリンク 問題概要 日本では、ツバメは 4 月から 9 月まで観察できる。 1 以上 12 以下の整数 が与えられるので、 月にツバメを観察できるか答えてください。 考えたこと 次のように考えればよい。 のとき:"Yes" そうでないとき…
ソートの練習問題 問題へのリンク 問題概要 20 個の整数が与えられる。 前半 10 個の整数のうち、大きい順に 3 個の整数の総和 後半 10 個の整数のうち、大きい順に 3 個の整数の総和 をそれぞれ求めよ。 解法 前半ができれば後半も同様なので、前半を考えま…
set を使おう! 問題へのリンク 問題概要 長さ の整数列 と、正の整数 が与えられる。 以上 以下の整数のうち、数列 に一度も含まれないものについての総和を求めよ。 制約 考えたこと まず、 となる。 この値から「1 以上 以下の整数のうち、数列 に一度以…
文字列を左から見ていき、隣接する 2 文字が異なる箇所を見つけるやいなや、マルバツスタンプを使う、という Greedy でよい! 問題へのリンク 問題概要 マルスタンプ、バツスタンプ、マルバツスタンプの 3 種類がある。 マルスタンプを使うと、文字 'O' を印…
シミュレーションを冷静に実装しよう! 問題へのリンク 問題概要 マス があって、マス 1 はスタート、マス 2019 はゴールである。 個のコマがあり、それぞれ 番目にマスに置かれている。 次の 回の操作を実行する。 回目の操作ではコマ を動かそうとする も…
結構頭がこんがらがる問題だと思う。 問題へのリンク 問題概要 あるソーシャルゲームでは、1 日につき 1 回までログインすることができ、ログインするたびに 枚のコインが得られる。 さらに、月曜日から日曜日まで 7 日連続でログインすると、そのたびに、追…
三平方の定理を思い出そう! 問題へのリンク 問題概要 座標平面上の 3 個の格子点 が与えられる。 これら 3 点 が直角三角形をなすかどうかを判定せよ。 制約 座標値は -1000 以上 1000 以下 考えたこと 3 点 A, B, C が直角三角形をなす条件は のいずれかを…
二次元グリッド上で、マス の上下左右のマスがなんであるかを学ぶ問題! 問題へのリンク 問題概要 の二次元グリッドが与えられる。グリッドの各マスは '.'(通路)または '#'(壁)である。 はじめ高橋くんはマス にいる。これから高橋君に 回の命令がくだる…
if 文と、論理演算子の練習! 問題へのリンク 問題概要 あるアトラクションに乗るには、身長が 以上、体重が 以下である必要がある。 身長が 、体重が である高橋君は乗れるか? 考えたこと かつ であるかどうかを判定すればよい。 C++ であれば、論理演算子…
実はとても単純な解法に落とし込めるのだけど、発想がちょっと難しい 問題へのリンク 問題概要 AtCoder 王国の 1 週間は 日あり、最初の 日が休日、後半の 日が平日である。 高橋君は 日分の予定があり、それぞれ 日目に予定がある。 これらの予定日がすべて…
連想配列のいい練習問題! 問題へのリンク 問題概要 種類のビーンズがあって、 種類目のビーンズはおいしさが で色が である。ビーンズは混ぜられており、色でしか区別することができない。 あなたはビーンズの色を 1 つ選び、その色のビーンズをどれか 1 粒…
完全な愚直シミュレーションでは通らなくて、割り算で繰り返し回数を求める系の問題! 問題へのリンク 問題概要 体の敵を順に倒す。 体目の敵の HP は である。 あなたは に初期化された変数 を管理している。敵を攻撃するとき、次のようにする。 を 1 増や…
if 文の練習問題 問題へのリンク 問題概要 高橋君の現在のレーティングは 、最高レーティングは である。 高橋君の最高レーティングが 2800 以上であるかどうかを判定せよ。 考えたこと は結局関係ない。 H >= 2800 ならば "o" そうでなければ "x" を出力す…
極めて易しい問題! 問題へのリンク 問題概要 整数 が与えられる。 の値を出力せよ。 考えたこと 整数 の値を、たとえば整数型変数 A, T に格納して、5 * A + T の値を出力すればよい。 コード #include <bits/stdc++.h> using namespace std; int main() { int A, T; cin ></bits/stdc++.h>…
問題の条件をいかにうまく言い換えるか! 問題へのリンク 問題概要 2 つの整数 が与えられる()。 を小数点第四位を四捨五入して、小数点第三位まで表した結果を求めよ。 考えたこと を整数型ではなく、浮動小数点型として受け取って、B / A を計算して小数…
最大値を求めるとともに、その index も求めるという問題! 問題へのリンク 問題概要 高さが であるような 本の橋がある。これらの橋の高さは相異なる。 これらの橋のうち、最も高いものが何番目の橋であるかを答えよ。 考えたこと まず、単に「橋の高さの最…
for 文の練習! 問題へのリンク 問題概要 英小文字からなる文字列 が与えられる。 に含まれる文字 'a' のうち、最も右側にあるものについて、その添字を答えよ。ただし、'a' が含まれない場合は -1 を出力せよ。 考えたこと 「最も右側」という条件がなけれ…
問題文の操作を上手に言い換えて、for 文で処理できる形にしよう! 問題へのリンク 問題概要 長さ の数列 に対して、以下の操作を 回実施してできる数列を出力せよ。 数列の先頭の数値を削除し、末尾に 0 を挿入する 制約 考えたこと C++ では、数列は vector<int></int>…