AtCoder100点
ソートが使えるなら、それが楽だと思う 問題へのリンク 問題概要 6 桁の正の整数 が与えられる。 が次の条件を満たすかどうかを判定せよ。 1 をちょうど 1 個含む 2 をちょうど 2 個含む 3 をちょうど 3 個含む 解法 (1):1, 2, 3 の個数を数える方法 for 文…
3 つのものを扱う系の問題、昔はよく出ていた。 問題へのリンク 問題概要 各桁の値が 1〜9 である 3 桁の整数 abc が与えられる。 bca と cab を出力せよ。 考えたこと 整数値で受け取るよりは、3 つの char 型変数 a, b, c で受け取るのが楽。 そうすると、…
これ意外と難しいと思う! 問題へのリンク 問題概要 4 個の整数 (1, 2, 3, 4 のいずれか) が与えられる。これら整数に対して、 「2 個同じ整数があったら 2 個まとめて消す」 という操作を最大で何回できるか? 考えたこと 整理が大変だけど、色んな解法があ…
昔の ABC A 問題はこういうのよくあった! 問題へのリンク 問題概要 3 文字の文字列 が与えられる。これを並び替えることで "ABC" に一致させることができるかどうかを判定せよ。 考えたこと 並び替えて "ABC" に一致する文字列は "ABC" "ACB" "BAC" "BCA" "…
文字列を for 文で調べる系の問題 問題へのリンク 問題概要 文字 #, . からなる長さ の文字列 が与えられる。次の条件を満たす整数 の個数を求めよ。 = # = . = # 考えたこと 次のように考えると実装しやすい。 各 に対して、文字列 の 文字目から 3 文字文…
関数 substr() の練習! 問題へのリンク 問題概要 4 文字以上 30 文字以下の文字列 が与えられる。 の末尾 3 文字が "san" であるかどうかを判定せよ。 考えたこと 文字列 の末尾 3 文字は S.substr(S.size() - 3) で取得できる。 これが "san" かどうかを判…
文字列、配列、for 文の練習 問題へのリンク 問題概要 文字列 が与えられる。 文字列 の長さが であるような の個数を求めよ。 考えたこと for 文を使って について、 if (S[i].size() == i) というように判定していけばよい。 コード #include <bits/stdc++.h> using names</bits/stdc++.h>…
continue 文が書けるとやりやすいと思われる。 問題へのリンク 問題概要 英小文字と文字 '.' からなる文字列 が与えられる。 から文字 '.' を除外してできる文字列を出力せよ。 考えたこと for 文を用いて文字列 の文字を順に見ていこう。その際に、 番目の…
else if 文と、論理演算子「&&」の練習。 問題へのリンク 問題概要 2 つの整数 が与えられる。 かつ のときは "Yes" かつ のときは "No" それ以外のときは "Invalid" を出力せよ。 考えたこと else if 文と、論理演算子「&&」を使って、次のように書ける。 #…
偶数と奇数に関する理解も問われる問題。 問題へのリンク 問題概要 2 つの整数 が与えられる。 「 を並び替えると等差数列をなす」 という条件をみたすような整数 が何通りあるか求めよ。 制約 解法 (1):数学的に解く まず、 の大小関係で場合分けして考え…
問題の条件をいかにうまく言い換えるか! 問題へのリンク 問題概要 2 つの整数 が与えられる()。 を小数点第四位を四捨五入して、小数点第三位まで表した結果を求めよ。 考えたこと を整数型ではなく、浮動小数点型として受け取って、B / A を計算して小数…
最大値を求めるとともに、その index も求めるという問題! 問題へのリンク 問題概要 高さが であるような 本の橋がある。これらの橋の高さは相異なる。 これらの橋のうち、最も高いものが何番目の橋であるかを答えよ。 考えたこと まず、単に「橋の高さの最…
for 文の練習! 問題へのリンク 問題概要 英小文字からなる文字列 が与えられる。 に含まれる文字 'a' のうち、最も右側にあるものについて、その添字を答えよ。ただし、'a' が含まれない場合は -1 を出力せよ。 考えたこと 「最も右側」という条件がなけれ…
問題文の操作を上手に言い換えて、for 文で処理できる形にしよう! 問題へのリンク 問題概要 長さ の数列 に対して、以下の操作を 回実施してできる数列を出力せよ。 数列の先頭の数値を削除し、末尾に 0 を挿入する 制約 考えたこと C++ では、数列は vector<int></int>…
「 個の文字列を受け取ること」と「逆順に出力すること」の練習! 問題へのリンク 問題概要 個の文字列 が与えられる。 これらを の順に出力せよ。 制約 考えたこと まず、 個の文字列を受け取るためには、C++ では vector<string> 型というように「文字列の配列」を</string>…
規則性を発見しよう! この規則は今後セグメントツリーなどを学ぶときにも活用する! 問題へのリンク 問題概要 次の図において、 番目の頂点と 番目の頂点がつながっているかを判定せよ。 考えたこと 図を見ると、次の規則があることがわかる。 番号が であ…
意外と実装に手こずった人も多いかもしれない。上手に for 文で実装できる操作に言い換えていこう! 問題へのリンク 問題概要 長さ の数列 が与えられる。 今、 かつ をみたす 4 つの整数 が与えられる。 数列 の 番目から 番目の項までと、 番目から 番目の…
for 文を用いて 回処理していく系の問題 問題へのリンク 問題概要 整数 が与えられる。 英大文字を 'A' から昇順に 個繋げて得られる文字列を答えよ。 制約 考えたこと for 文を用いて、次のように実装すればよい。 for (int i = 0; i < K; i++) { // i 番目…
文字列を 個受け取る型式に慣れよう! 問題へのリンク 問題概要 は奇数である。 個の文字列 が与えられる。各文字列は "For" か "Againist" かのいずれかである。 "For" が過半数を占めるかどうかを判定せよ。 制約 は 1 以上 99 以下の奇数 考えたこと 個の…
配列の中に配列型式の添字を入れるような処理(A[B[i]] のような)を書けるようになろう! 問題へのリンク 問題概要 あるコンテストでは 問が出題され、配点はそれぞれ 点であった。 参加者のすぬけ君は、このうちの 問 問を解いた。 すぬけ君の得点はいくら…
while 文や for 文で実装できる。 問題へのリンク 問題概要 正の整数 が与えられる。 をこの順に出力せよ。 考えたこと while 文で自然に実装できる。 N >= 0 である限り、N を出力したのち、N の値を 1 下げていけば良い。 コード #include <bits/stdc++.h> using namespac</bits/stdc++.h>…
線形探索法の応用! 問題へのリンク 問題概要 英文字からなる文字列 が与えられる。 この文字列 には、1 個だけ英大文字があり、残りはすべて英小文字である。 この英大文字が先頭から何番目の文字であるかを求めよ。 考えたこと for 文を用いて、各 に対し…
言われた通りに処理していくだけだが、最初は意外と手こずるかもしれない。 問題へのリンク 問題概要 英小文字からなる長さ偶数の文字列 が与えられる。 の順に、 と を入れ替える。 操作後の文字列を出力せよ。 考えたこと C++ では文字列の最初の文字は 0 …
for 文を回しながら「隣接要素」も同時に見ていく系 問題へのリンク 問題概要 文字 M, F からなる長さ の文字列 が与えられる。 この文字列中に同じ文字が連続している箇所が存在しないならば "Yes"、存在するならば "No" を出力せよ。 考えたこと for 文を…
for 文で、隣接する要素も見ながら走査していく系の問題! 問題へのリンク 問題概要 高橋君は時刻 0 にパソコンを起動し、時刻 にクリックをした。 となるとき、クリック はダブルクリックが成立したという。 ダブルクリックが最初に成立した時刻を求めよ。…
再帰関数の練習とも言える問題。問題文に書いてある通りに実装すればよい。 問題へのリンク 問題概要 非負整数 に対して定義される関数 は次のように定義される。 のとき、 非負整数値 が与えられるので、 の値を求めよ。 制約 考えたこと この問題は再帰関…
for 文を工夫しよう 問題へのリンク 問題概要 長さ の数列 が与えられる。 この数列の末尾の 個の要素を順序を保ったまま先頭に持ってきて得られる数列を出力せよ。 制約 考えたこと 次のように考え直すとよい。なお、0-indexed で考えている。 数列の 番目…
文字列を for 文で調べる問題 問題へのリンク 問題概要 文字 o, x, - からなる長さ の文字列 が与えられる。次の条件を満たすかどうかを判定せよ。 文字 o を少なくとも 1 つ含む 文字 x を含まない 制約 考えたこと 文字列 の各文字を for 文で走査すること…
for 文の練習! 問題へのリンク 問題概要 高橋くんと青木くんが 回の試合を行った。 これらの試合の結果を表す長さ が与えられる。 回目の試合の勝者は、 の 文字目が T ならば高橋くん、A ならば青木くんである。 高橋くんと青木くんのうち、勝った試合の数…
16進法に関する問題! 問題へのリンク 問題概要 0 以上 255 以下の整数 が与えられる。 の 16 進法表記を求めよ。 考えたこと 16 進法について知識がなかったら、たとえば次のような記事で勉強するとよさそう! zenn.dev であり、今回与えられる整数 は 255 …