[python]白駿1932号:整数三角形
5049 ワード
https://www.acmicpc.net/problem/1932
に答える 1
からn
の第一挙動は正三角形に配列されているので、j
の範囲はi+1
であり、巡回する
1行ずつ下に移動し、前の値と現在の値を加算したときの最大値を選択します.
以前の値は、現在の値の真上から下と左上から下を考慮できます.
直接上から降りる場合はi==j
と言えますが、この場合は右から降りる数字がないのでright=0
です.
左上から下りた場合はj==0
と言えますが、この場合、左下からの数字はないのでleft=0
です.
コード#コード# import sys
input = sys.stdin.readline
n=int(input())
maps = [list(map(int,input().split())) for _ in range(n)]
for i in range(1, n):
for j in range(i+1):
# 왼쪽 위에서 내려오는 경우
if j==0:
left = 0
else:
left = maps[i-1][j-1]
# 바로 위에서 내려오는 경우
if i==j:
right = 0
else:
right = maps[i-1][j]
maps[i][j] = maps[i][j] + max(right, left)
print(max(maps[-1]))
Reference
この問題について([python]白駿1932号:整数三角形), 我々は、より多くの情報をここで見つけました
https://velog.io/@joniekwon/Python-백준-1932번-정수-삼각형
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
import sys
input = sys.stdin.readline
n=int(input())
maps = [list(map(int,input().split())) for _ in range(n)]
for i in range(1, n):
for j in range(i+1):
# 왼쪽 위에서 내려오는 경우
if j==0:
left = 0
else:
left = maps[i-1][j-1]
# 바로 위에서 내려오는 경우
if i==j:
right = 0
else:
right = maps[i-1][j]
maps[i][j] = maps[i][j] + max(right, left)
print(max(maps[-1]))
Reference
この問題について([python]白駿1932号:整数三角形), 我々は、より多くの情報をここで見つけました https://velog.io/@joniekwon/Python-백준-1932번-정수-삼각형テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol