0
0

More than 1 year has passed since last update.

0.はじめに
 Cまではそこそこの歯ごたえで溶けましたが、D以降は処理時間を
 減らす工夫をする前に時間切れといった感じでした。

1.A - A Recursive Function
 階乗を求める問題かなと思いつつ、素直にN回のfor文を作成。
 ところがうまくいかずWhile文にしてもNG。
 よく見たら”*=”を使っているのに、=の後にも元の変数を入れているという
 凡ミスをしてて変に時間を食ってしまいました。

 https://atcoder.jp/contests/abc273/submissions/35667109

2.B - Broken Rounding
 最初にググったらpythonにround関数があると知り、それを軸に実装。
 ところが、さらに調べるとうまく四捨五入できないことを知り、やり直し。

 実装内容
 1)iを1~Kまで回す
  2)変数chkに10のi乗をセット
    i=1の時、chk=10
  3)変数chk2に10のi-1乗に5をかけたものをセット
    i=1の時、chk=5
  4)変数mXにXをchkで割った余りをセット
    i=1の時、mXは1桁目の値
    5)mXがchk2以上の時→切り上げ対象
      XからmXを引き、chkを足す
    6)mXがchk2より小さい時→切り捨て対象
      XからmXを引く
 7)Xを出力 

 https://atcoder.jp/contests/abc273/submissions/35674948

3.C - (K+1)-th Largest Number
 考え方
最初問題の意図を取り違え失敗
  誤)リストのi番目の数値より大きい数の個数を表示
  正)リスト内に自らより大きい数字の種類がi個ある数値が何個あるかを表示

 実装内容
  (1)リストAを並べかえたリストsortAを用意
  (2)辞書dictを用意(keyは自分以上種類数カウント、値は同値を持つ数値数)
  (3)自分以上の種類数カウント用変数cntを用意
  (4)初期処理としてsortA[0]の処理
    dict[0]に1をセット
    比較用変数preにsortA[0]をセット
  (5)iを1からNまで繰り返し
    (6)sortA[i]!=preの時cntに1を加算し、dict[cnt]に1をセット
    (7)sortA[i]=preの時、dict[cnt]に1を加算
    (8)cntにsortA[i]をセット
  (9)出力処理:iを0からNまで繰り返し
    (10)dict内にkey=iがある場合値を表示
    (11)dict内にkey=iが無い場合0を表示

 https://atcoder.jp/contests/abc273/submissions/35681088

4.D - LRUD Instructions
 単純に問題通りの実装をしてみたところTLE
 その時点で残り時間10分くらいだったのでEを覗いて終了

5.E - Notebook
 単純に実装したら、”DELETE”だけsplitがエラーになって躓いているうちに時間切れ
 変なところで引っかかってしまいました。(それが無くても解けてないとは思いますが・・・)

D・Eも面白そうな問題だったので今週時間があったら振り返りたい・・・・と思いつつすぐ
翌週になってしまいますね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0