初心者のプログラミング日記

プログラミング初心者の日記

プログラミングに関することを書いていきます。

ABC136(A~C)

今回からAtCoderに登録したのでコードは全部通ります

A - Transfer

https://atcoder.jp/contests/abc136/tasks/abc136_a
かかった時間 4分
実行時間 30ms

A,B,C=map(int,input().split())
print(max(C-(A-B),0))

なんか、WAになるなと思っていたら、print(C-(A-B))としていて、これではマイナスまでいってしまうのでprint(max(C-(A-B),0))としている

B - Uneven Numbers

https://atcoder.jp/contests/abc136/tasks/abc136_b
かかった時間 5分
実行時間 93ms

N=int(input())
ans=0

for i in range(1,N+1):
    if len(str(i))==1 or len(str(i))==3 or len(str(i))==5:
        ans+=1
        
print(ans)

C - Build Stairs

https://atcoder.jp/contests/abc136/tasks/abc136_c
かかった時間 90分
実行時間 78ms

N=int(input())
H=list(map(int,input().split()))
B=H[::-1]
for i in range(N-1):
    if B[i]<B[i+1]:
        B[i+1]-=1
    if B[i]<B[i+1]:
        print("No")
        exit()
        
print("Yes")

最初は普通にリストの最初からやっていたんですが、何回やっても上手くいかず、ふとこれ逆からやった方が簡単じゃねと思いやってみたら一発で通りました。こっちの方が単純に大きさを比較するだけなので簡単でした。
もっとはやく気づきたかったです。
ちなみに、以下のコードが最初に書いたコードです。

N=int(input())
H=list(map(int,input().split()))
min=H[0]
for i in range(1,N-1):
    if H[i]>H[i+1]:
        H[i]-=1
    if H[i]<min:
        print("No")
        exit()
    min=H[i]
        
print("Yes")