【初心者】pythonで0から Project Euler を解いてみた 18,67


おはこんばんにちわ!!
夏休み終わりました。地元の花火大会の日私はコンビニでカップルのレジをピッピピッピやってましたよ(泣)
今回はeuler18と67を解くわよ!
問題文はここみなさい!!
18問目
http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2018
67問目
http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2067
今回はアルゴリズムが同じなので一緒に作っちゃう💛

アルゴリズム

まずはこれぇ!

まず、スカートをめくるようにしたから見ていくわよっ!!
2と4を比べて大きいほうを一つ上のものに足していくわ!
少し難しく書くとlist使って
list[2][0]とlist[2][1]をくらべるのよ
ちなみに今回二次元配列を使ってくわ❕

次に青のところを比べて大きいのを上に足すわ!!
そしたら7と4が11と10になったの、わかるぅ??

そしたら私のだいすきなピンクちゃんの11,10を比べて大きいのを足して完成だわ!!

コード

pro = """75
95 64
17 47 82
18 35 87 10
20 04 82 47 65
19 01 23 75 03 34
88 02 77 73 07 63 67
99 65 04 28 06 16 70 92
41 41 26 56 83 40 80 70 33
41 48 72 33 47 32 37 16 94 29
53 71 44 65 25 43 91 52 97 51 14
70 11 33 28 77 73 17 78 39 68 17 57
91 71 52 38 17 14 91 43 58 50 27 29 48
63 66 04 68 89 53 67 30 73 16 69 87 40 31
04 62 98 27 23 09 70 98 73 93 38 53 60 04 23"""
pro = pro.strip().split("\n")
for i in range(len(pro)):
    pro[i] = pro[i].strip().split(" ")
    pro[i] = [int(x) for x in pro[i]]
num = []
ne_num = 0
for x in range(len(pro)-1,0,-1):
    for y in range(len(pro[x])- 1):
        pro[x-1][y] += max(pro[x][y],pro[x][y+1])
print(pro[0])
pro = pro.strip().split("\n")
for i in range(len(pro)):
    pro[i] = pro[i].strip().split(" ")
    pro[i] = [int(x) for x in pro[i]]

ここで一つ一つをリストの要素にして二次元配列にするわ!!
ここ大切💛私ここで一日悩んで結局調べてしまったわ(泣)

num = []
ne_num = 0
for x in range(len(pro)-1,0,-1):
    for y in range(len(pro[x])- 1):
        pro[x-1][y] += max(pro[x][y],pro[x][y+1])
print(pro[0])

ここでさっきのアルゴリズムの登場だわっ!
range(len(pro)-1,0,-1): で赤い矢印の役目をはたしているわっ!!!
二重ループ使ってガンガンゴリゴリ計算していくわっ!!!
そして最後にlist[0]が答えになるってわけ💛
どぉ??みんな分かったぁ??
67問目コードも載せ解くわ💛

txet_deta = open("triangle.txt")
txet = txet_deta.read()
txet = txet.strip().split("\n")
for x in range(len(txet)):
    txet[x] = txet[x].strip().split(" ")
    txet[x] = [int(y) for y in txet[x]]
#print(txet)
for i in range(len(txet)-1,0,-1):
    for n in range(0,i):
        txet[i-1][n] += max(txet[i][n],txet[i][n+1])
print(txet[0])

やり方は一緒よ💛
みんな頑張のよ💛

みんなも暑さには気を付けるのよ!

水分補給しなさいね!!