ritsuuuuのAtCoder日記

AtCoderの過去問のメモです。

ABC157-C Guess The Number

今回は、ABC157-Cの自分なりの考えをまとめていきます。

atcoder.jp

【問題要約】

以下の条件1,2を満たす0以上の自然数が存在すればそれらのうち最小のものを、存在しなければ-1を出力せよ。

  1. 十進法でN桁(先頭に0はつけない)
  2. s_i桁目は c_iである。

【条件】

・入力は全て整数

 1\leq N \leq 3

 0\leq M \leq 5

 0\leq s_i \leq N

 0\leq c_i \leq 9

【入力】

N M

 s_1 c_1

 \vdots

s_M c_M

【考えたこと】

 3桁以下の自然数なので、1 ~ 999を全探索して 2 の条件を満たしたところで探索を終了すれば良い。 確かめたい数字を  i とすると、 i a_i 桁目  == c_i をすべての条件について確認する。以下は実装手順。

  1.  ans = -1 とする。
  2. 1 ~ 9, 10 ~ 99, 100 ~ 999までのループをNに合わせて行う。( iとする。)
  3.  count = 0 として条件1 ~ M までループを行う。
  4. 条件を満たしたら count += 1 とする。満たさなかったらbreak
  5.  count == M となったらすべての条件を満たしたことになるので、 ans = iとして、最初のfor 文からbreak する。
  6.  ans を出力する。 

【コード】

f:id:purokionkun:20210124225312p:plain


 

 

#abc #300点問題 #茶色 #全探索

 

AtCoder復習 A問題 184-170

184 - 170のA問題を解きました。

基本的にはそのままコードを書けば良いのですが、いくつか工夫して書いている回答があったので、自分のコードと比較して公開します。

 

184 ~ 176、174、172:そのまま

 

 

175:A - Rainy Season

【 自分の解答】

全パターン書き出す。

 

【模範解答】

'RSR' の時だけprint(2)

残りはRの数を数えれば良い。s.count('R')。

 

 

 

173:A. Payment

【自分の解答】

N < 1000、N % 1000、N >= 1000に場合わけする。

 

【模範解答】

(1000 - N) % 1000

N % 1000で下3桁を求められる(N < 0でも正の値が出る)

 

171:str.islower

 

170:A. Five Variables

【自分の解答】

a,b,c,d,e == 0をif文で(すごく効率悪い)

 

【模範解答】

①index(0) + 1

②15 - (a + b + c + d + e)

 

 

自分がいかに効率が悪いかA問題だけでも十分自覚しました。

 

 

 

 

 

At Coder始めました。

初めまして。

At Coderを始めたので、過去問のメモ変わりにBlogを始めました。

 

最初の記事として、これから茶色を目指すための練習方法をメモしておきます

AtCoder Problemsの過去問のうち、茶色以下の問題を解く(ABC184 ~ 下っていく)。

・回答を数式的に理解し、その内容をBlogにメモする。

 

以上となります。

来年度までに茶色に上がればいいなぁ。。。