2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Re:ゼロから始める競技プログラミング生活 第1章2『涙のPython』

Posted at

#第2の敵
今回は前回より難しいB問題を解いていきます!!
では早速、問題どーん!!
ce1c5b58d8be6c42b4e39bd7d61f140b.png

...何じゃこれ
難易度一気に上げ過ぎではないでしょうかねぇ...
とりあえず図を描いて何を求めていけば良いのかを整理してみます。
image0.jpeg

なるほど、この小学生でもまだマシなものを描きそうなこの図を見ると、Lの回数に最初の1回を加えたものがこの問題の解答になると言うことですね。意外と簡単だった!!
では早速、C++で書いていきたと...

Python「(´・ω・`)」

OT「どうしたPython!?」

Python「もう僕は使わないの?(´・ω・)」

OT「だってPython、君を使ってコードを書くスキルが自分にはないんだ...ないんだよ.....」

Python「じゃあ僕はいらない子なの?(´°̥̥̥̥̥̥̥̥ω°̥̥̥̥̥̥̥̥`)」

OT「そんな悲しい顔しないでくれパイソぉおおおおおおおおおん」

...

...

...はい、と言う訳で今回はPythonでコードを書いていきます。


N, X = map(int, input().split())
L = list(map(int, input().split()))
distance = 0
bounds = 1

とりあえず、使う変数を全て宣言!!

N,X,Lは前回いただいたコメント等を参考に記述、ここさえクリアできればなんとかなるはず!!
boundsはボールが跳ねる回数で、最初から座標D0の文の1回を入れています。
deistanceはボールが跳ねて進んだ距離です。


for i in range(n): 
    distance += l[i]
    if distance <= x:
      bounds += 1
    else:
      break
print(bounds)

この繰り返し文でdistanceがXを超えるまでboundsが加算されるようにします。
これでなんとかACいただきました!!

#最後に
今回は前回より早く解けましたが、前回のコメントの力がかなり大きかったです。
コメントしてくださった方、ありがとうございますm(_ _)m
これでもうPythonの泣き顔を見る日はやってこないであろう...
問題Cからはなんか無理めな予感がするぜ...

ご拝読いただき、ありがとうございました。

2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?