ferinの競プロ帳

競プロについてのメモ

ABC

ABC012を解いてみた

A問題 a, b を受け取って b, aを出力しました。 B問題 int(n/3600) を時間、その分をnから引いてint(n/60)を分、その分をnから引いた分を秒を表す変数に代入します。そして、zfill()で0パディングして":"と連結して出力しました。 C問題 制約と入出力例から…

ABC011を解いてみた

abc011.contest.atcoder.jp A問題 nが12のときだけn=0にしてn++を出力しました。 B問題 文字列型の配列の形で入力を受け取り、upper()とlower()を利用して1文字目を大文字に、残りの文字を小文字にする処理をしました。 C問題 全探索以外のアルゴリズムを思…

ABC010を解いてみた

A問題 入力と"pp"を連結して出力しました。 B問題 疑似Do-Whileループで2nでも3n+2でもなくなるまで-1していきました。-1した回数を数えてその回数を出力しました。 C問題 n個の家に対して全探索を行い、それぞれの家に寄ってから移動が終了するまでの距離と…

ABC009を解いてみた

abc009.contest.atcoder.jp A問題 入力を2で割って切り上げて出力しました。 B問題 降順でソートして先頭から順番に値を見ていき切り替わったところの値を出力しました。 C問題 思い浮かばなかったので解説よんでコード書きました。実装に手こずってしまい1…

ABC008を解いてみた

abc008.contest.atcoder.jp A問題 入力SからTまでの数の個数を数えればいいのでT-S+1を出力しました。 B問題 全探索で名前が同じであればその名前の票数に対応する変数を+1し一番票数が多い名前を出力しました。 C問題 部分点狙いの全探索で実装しました。it…

ABC007を解いてみた

abc007.contest.atcoder.jp A問題 入力から1を引いた数を出力しました。特につまずくこともなかったです。 print(int(input())-1) B問題 辞書順で前になるものならば何でもいいということだったので入力がaのときだけ-1を出力しそれ以外ならば辞書順で1番前…

ABC047を解いてみた

abc047.contest.atcoder.jp A問題 それぞれの数が他の2つの和と等しいかどうか確認してどれか1つでも真であれば"Yes"を出力します。特につまずくこともなく成功でした。 B問題 白と黒のどちらで塗りつぶされているかを0と1として管理する変数を用意し、n回ル…

ABC006を解いてみた

abc006.contest.atcoder.jp A問題 一桁なので3のつく数は3のみで、3は3の倍数です。なので、3の倍数かどうかを確かめるだけで判定可能です。あとは出力するだけです。特につまづくことなく成功でした。 B問題 再帰を使った処理だと遅すぎるだろうなーと想像…

ABC004を解いてみた

abc004.contest.atcoder.jp A問題 入力を2倍して出力する問題です。特に引っかかることもなく成功です。 B問題 次のように2次元配列を用意して入力元のデータを2重ループ内で入れ替えていきます。 for i in range(4): for j in range(4): b[i][j] = a[3-i][3…

ABC003を解いてみた

A問題 期待値を求める式は 10000 * (1/N) + 20000 * (1/N) + … + N*10000 * (1/N) = 10000 * (1/N) * (1 + 2 + … + N) = 10000 * (1/N) * (1/2) * N(N+1) = 5000 * (N+1) と変形できたので5000*(N+1)を出力します。 B問題 SとTを1文字ずつ先頭から確かめてい…

ABC002

プログラムの勉強のために競技プログラムを始めてみようと考えてAtCoderのAtCoder Beginner Contest(ABC)に参加してみることにしました。勉強を兼ねて言語は最近始めたPython3でやってみます。まず慣れるためにも過去問(ABC002)を解いてみました。 問題A …