AtCoder Beginner Contest 087CをPythonで解く

今回は、AtCoder Beginner Contest 087Cを解いていきたいと思います。

## 問題

2×Nのマス目があります。上からi行目、左からj列目 (1≤i≤2, 1≤j≤N) のマスをマス(i,j)と表すことにします。あなたははじめ、左上のマス(1,1)にいます。 あなたは、右方向または下方向への移動を繰り返し、右下のマス(2,N)に移動しようとしています。マス(i,j)にはAi,j個のアメが置かれています。 あなたは移動中に通ったマスに置いてあるアメをすべて回収します。 左上および右下のマスにもアメが置かれており、あなたはこれらのマスに置かれているアメも回収します。 移動方法をうまく選んだとき、最大で何個のアメを回収できるでしょうか。

こう考えた。

  • 入力をN,L1,L2"でそれぞれ受ける。
  • forで全組み合わせを列挙し回答の配列に格納する。
  • printで表示する。

書いたコード

N=int(input())
L1=list(map(int,input().split()))
L2=list(map(int,input().split()))
C=[]
for n in range(N):
  C.append(sum(L1[:n+1])+sum(L2[n:]))
print(max(C))

🐍これでいけんちゃうかな?

結果

AC!!

🐍おし!

勉強になったコード

n=int(input())
a=list(map(int,input().split()))
b=list(map(int,input().split()))
print(max(sum(a[:i+1])+sum(b[i:]) for i in range(n)))

🐍リスト内にforかけるんや。

Last Updated: 6/11/2019, 4:59:12 AM