본문 바로가기

euler project10

Problem 10 - Summation of primes The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17. Find the sum of all the primes below two million. [출처 - projecteuler.net/] 항상 그렇듯... 아니 항상은 그렇지 아니하겠지만 현재까지 아주아주 적은 문제를 풀어본 결과 Project Euler에서 제출하는 문제는 아주아주 간단하게 나옵니다. 하지만 몇번 곱씹어야하고 알고리즘의 기본을 수학의 기본을 생각하게 하는 질문을 던지는게 그 특징이라고 생각됩니다. 이번에는 Prime 즉 소수를 구해서 그 합을 구하는게 그 문제입니다. Prime은 해당 수의 약수가 1과 자신인 수를 소수라고 하는데... two million까지 소수를 찾아서 다 더하려면 아무래도.. 2020. 11. 24.
Problem 9 - Special Pythagorean triplet 이 문제는 피타고라스 정리를 이용해서 특정값을 구하는 것 입니다. Basic : a+b+c = 1000 이고 a^2 + b^2 = c^2 인 abc의 곱을 구하기 Advance : Test Case가 3000개 이하 이고, a+b+c 1 + (n-i-1)**2: break for j in range((n-i)//2, 0, -1): if i**2 == j**2 + (n-i-j)**2: res.append([j, (n-i-j), i]) break maxAns = 0 for i in range(len(res)): temp = res[i][0] * res[i][1] * res[i][2] if temp > maxAns: temp, maxAns = maxAns, temp if len(res) ==0: print(-.. 2019. 12. 22.
Problem 8 - Largest product in a series 이 문제는 주어진 엄청나게 긴 숫자열(1000개 숫자)에서 연속으로 13개의 숫자의 곱 중 가장큰 숫자를 찾는 문제입니다. 일직선으로 생각하면 되고, 대각선이나 세로가 아닌 horizental로 생각하고 해결하면 됩니다. 가장 처음으로 생각할 부분은 이 문제를 가장 원초적으로 어떻게 풀 것인지를 생각하고, 차차 난이도가 있는 제약이 들어올 것을 고려하여 최적화하는 단계로 진화를 시키면 되겠습니다. 우선 원초적으로 어떻게 풀면 될까요?? 뭐... 그냥... 첫번째 ~ 13번째 수까지의 곱을 구하고 두번째 ~ 14번째 수까지의 곱을 구하고 ................... ................... 천번째-12번째 ~ 천번째 수까지의 곱을 구해서 가장큰 수를 뽑으면 되겠습니다. 1. 원초적으로 풀.. 2019. 12. 8.
Problem 6 - Sum square difference 이번 문제는 왠지 간단한 것 같지만, 제약조건을 두자면 한없이 어려워지는 문제인거 같습니다. 우선 아직까지는 basic한 방식으로만 생각이 나서 해당 방법으로 우선 통과를 하고, 제약조건을 두어 Time Limit에 영향이 없도록 고려해서 한번더 올려보도록 하겠습니다. 주어진 조건만 만족하도록, 100까지의 Sum square difference 구하기 제약조건을 두어 Test case가 10000개의 Test case에 최대 10000까지 구하기 (time out 발생가능) 1. Basic 그냥 단도직입 적으로 구합니다. 단 python을 이용하니... 이 언어에서 가능한 편한 방식으로 구현해 보겠습니다. python에는 배열을 신규로 생성할때, 내부 함수를 통해서 새로운 배열의 생성이 가능합니다. 또.. 2019. 11. 26.