본문 바로가기
Program/Python(Project Euler)

프로젝트 오일러(Project Euler #2)

by 시레엔 2017. 9. 28.
반응형

안녕하세요.

프로젝트 오일러라는 코딩 싸이트를 기반으로 2번째 문제 풀이를 시작하도록 하겠습니다.

꾸준히 풀긴하는데, 이상하게 블로그에 올리는게 쉽지 않네요. 아무튼 꾸준히 올리는 것으로 마음을 먹고 이번 2번째 문제도 수행해보도록 하겠습니다.



이번에는 피보나치 수열에 대한 문제입니다. 모든 분들이 고등학교때 많이 보셨던 문제겠지만, 이 문제는 조금 더 꼬아서 짝수이면서 400만 이하의 항을 구하라고 나와있습니다.


#Python

a=[1,2]

i=0

c=list()

while True:


   b=a[i]+a[i+1]

   i=i+1

   a.append(b)

   if (b%2==0):c.append(b)

   if (b > 4000000) : 

      break


d=sum(c[:])

print(d+2)


위와 같이 첫째항과, 둘째항이 각각 1과 2로 도입이 되어있을 경우를 가정하고 코딩을 시작했습니다.

그리고, b의 첫항은 a[0]+a[1]으로 이루어지며, 이것은 append 명령어를 사용해서 a 집합의 뒤에 들어가게되며, 이 원리를 통해서 짝수인지 400만 이상인지에 대한 검사를 수행합니다. 만약 짝수면 c함수에 추가를 하고, 400만 이상이라면, Breaking되는 원리로 코딩을 했습니다. 그리고 마지막에 2를 더해준 이유는 a함수의 숫자 2는 포함되지 않았기 때문에, 마지막 print하는 곳에 +2를 추가적으로 도입을 해주었습니다.


너무 초반에 코딩을 한 부분이여서 많이 감을 못잡아서 길어지고, 어딘가 부족해보이는 코딩입니다.

나중에라도 이 글을 보시는 분들이 더 좋은 방법으로 댓글을 달아주셨으면 좋겠습니다.


그럼 다음에 Project Euler#3으로 다시 포스팅하도록 하겠습니다.

반응형

댓글