projecteuler67...または、URLファイルの読み込み

 projecteuler問題67 は、前回問題18 と同じで段数が100段なだけ。
 さすがに100段の数字ともなるとは別 URL になっています。そこで、100段の数字の読み込みに get-url を使います。
 あとは前回と同じで、スクリプトは

(silent)
(setq url "https://projecteuler.net/project/resources/p067_triangle.txt")
(setq triangle
      (map (fn (x) (parse x " "))
      (replace "" (parse (get-url url 1000) "\n"))))
(let (res (map list (map (fn(x) (int x 0 10)) (pop (reverse triangle)))))
  (dolist (r triangle)
    (let (tmp)
    (dolist (c (map (fn(x) (int x 0 10)) r))
      (push (if (> (apply + (res $idx)) (apply + (res (+ 1 $idx)))) 
        (cons c (res $idx)) (cons c (res (+ 1 $idx))))
        tmp -1))
    (setq res tmp)))
 (println (res 0))
 (println (apply + (res 0))))

 silent を使って余分な表示を抑え、必要なものだけ println で表示させるようにしました。
 これを実行すれば、

(59 73 52 53 87 57 92 81 81 79 81 32 86 82 97 55 97 36 62 65 90 93 95 54 71 77 68 
 71 94 8 89 54 42 90 84 91 31 71 93 94 53 69 73 99 89 47 80 96 81 52 98 38 91 78 
 90 70 61 17 11 75 74 55 81 87 89 99 73 88 95 68 37 87 73 77 60 82 87 64 96 65 47 
 94 85 51 87 65 65 66 91 83 72 24 98 89 53 82 57 99 98 95)
7273

 筋道と答えの 7273 が出てきます。

 以上、如何でしょうか?

広告

No comments yet

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。