Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9135029
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 17, 20262026-06-17T08:46:18+00:00 2026-06-17T08:46:18+00:00

I am solving Project Euler Problem #18 in Python. I have successfully solved the

  • 0

I am solving Project Euler Problem #18 in Python.

I have successfully solved the sample problem given there, but failed in solving the main problem. But the code is same.

Code is:

matrix = [('75', '0'),
    ('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')]

i = 0
j = 0
len = len(matrix )
sum = 0

for i in range(0,len):

    if matrix [i][j] > matrix [i][j + 1]:
        print matrix [i][j]
        sum = sum + int(matrix [i][j])
    else:
        print matrix [i][j+1]
        j = j + 1
        sum = sum + int(matrix [i][j])
print sum

Can anyone tell me where I am mistaken?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-17T08:46:19+00:00Added an answer on June 17, 2026 at 8:46 am

    Sorry but you’re using an incorrect algorithm.
    What you’re using is called a Greedy Algorithm, but the correct algorithm to use is Dynamic Programming. The major difference is that greedy choose a best current option as a choice, while dynamic programming enumerates EVERY possible option and generate a series of choices.

    There is a simple case on which your solution(greedy) would fail:

    0,  
    1, 0,  
    0, 0, 10  
    

    The best result is 10, but your algorithm would give 1 instead.

    Think about it yourself for a moment, and then try seeking for information on Dynamic Programming.
    Project Euler is a great place and it’s feels utterly great when you come up with a solution. So I won’t say many on it for now. 🙂

    UPDATED:

    But Ques: By starting at the top of the triangle below and moving to “adjacent numbers” on the row below. I have made my code according to this Word. Sorry for interrupting but can you make me more clear with this word ?

    Notice there would be actually 2^(n-1) possible routes on a given n level triangle. And in the original problem maximum total means the maximum total among all these routes.
    There’s no grantee that your code would find the maximum among ALL routes since you only choose a better one in TWO choices at any step.

    AGAIN UPDATED:

    Actually in this problem since n=15 is small enough, you can also enumerate all 2^(n-1)=16384 possible routes, summarize the total value of each route, and finally get a maximum total among all you get. However in Problem 67 of Project Euler the problem size n is increased to 100 and it would be not possible to enumerate all 2^(n-1)=633825300114114700748351602688 routes.

    By the way, I’ve posted a link to wiki page of Dynamic Programming, but I’m afraid it’s to complex to read as a starter. Sorry for that.
    But don’t worry, just Google dynamic programming tutorial and you’ll got many useful resources to see 🙂

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm currently working on a project Euler problem (www.projecteuler.net) for fun but have hit
I am solving Project Euler Problem 11 . I have copy-pasted the table in
I am slowly solving my way though project Euler. I have reached problem 103
I am solving problem 9 on the Project Euler . In my solution I
I am solving Problem 23 of Project Euler using Mathematica: Find the sum of
For solving project euler problem 20 to find the sum of digits in 100!
I'm playing with Haskell and Project Euler's 23rd problem. After solving it with lists
Possible Duplicate: Need help solving Project Euler problem 200 Similar to this question Project
I'm trying to solving Project Euler Problem 14 . It asks to find the
I solved Project Euler #14 using the following code: import time start_time = time.time()

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.