본문 바로가기

프로젝트오일러

프로젝트 오일러 2번 (Julia) 프로젝트 오일러 2번 풀이 피보나치 수열의 각 항은 바로 앞의 항 두 개를 더한 것이 됩니다. 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...짝수이면서 4백만 이하인 모든 항을 더하면 얼마가 됩니까? 피보나치 수열을 구현하기 위한 방법은 많이 있다. 흔히 재귀적으로 특정항을 구하는 방법이 있지만, 이는 지수적인 시간복잡도를 갖기 때문에 이 문제에는 적용할 수 없다. 다행히 '바로 앞 항 두개를 더한다'는 계산으로 피보나치 수열을 앞에서부터 계산하는 것은 간단하다. A, A+1 항의 값을 가지고 있을 때, A+1, A+2 항의 값을 계산하는 것은 (A+1항, A항 + A+1항)으로 계산되기 때문에 단순한 반복문으로 계산할 수 있다. 참고로 계산된 항이 짝수인 경우, if 문을 사용해서.. 더보기
프로젝트 오일러 1번 (Julia) 프로젝트 오일러 1번 문제 풀이 10보다 작은 자연수 중에서 3또는 5의 배수는 3, 5, 6, 9이고, 이것을 모두 더하면 23입니다. 1000보다 작은 자연수 중에서 3또는 5의 배수를 모두 더하면 얼마일까요? 루프를 돌면서 3또는 5의 배수인지를 검사하고 그 때마다 결과값에 해당 값을 더하는 방식으로 계산할 수 있는 간단한 문제이다. 다만, 줄리아에서도 파이썬과 같이 리스트 축약을 사용할 수 있으므로 보다 간단하게 작성할 수 있다. 파이썬과 마찬가지로 [ ... ] 으로 둘러싼 축약 표현식은 배열로 생성되는데, 괄호속에 작성하는 경우에는 제너레이터 표현식으로 평가된다. 본 문제에서는 배열이나 제너레이터이나 아무런 차이가 없으므로 괄호속에 작성하면 되겠다. 또한 단순 정수 범위에 대해서는 for x .. 더보기