Home » 스터디 » Project Euler » Page 3

Project Euler

오일러 프로젝트의 문제 풀이. 주로 파이썬과 Swift로 풀이합니다. (Python 3.6, Swift 4.0)

오일러 프로젝트 59

오일러 프로젝트 59 번 문제는 포럼에서 많은 이들로부터 “재밌다”는 평가를 많이 듣는 문제이다. 정수로 표현된 암호화된 문구가 주어지고, 세 글자짜리 키를 이용하여 XOR로 처리하여 암호화된 문장이라는 힌트를 기준으로 원래의 문장을 복호화하고, 원문의 ASCII 코드값의 합계를 구하는 것이다.
더 보기 »오일러 프로젝트 59

오일러 프로젝트 58

오일러 프로젝트 58 번 문제는 28번 문제와 비슷한 나선모양 격자를 늘려가면서 대각선에 존재하는 숫자중에서 소수의 비율이 10%미만이 될 때의 사각형의 크기(한변의 길이)를 구하는 문제이다. 종료 범위를 미리 알 수 없기 때문에 나선을 따라가며 소수인 수와 소수가 아닌 수를 모두 세어서 그 비율을 계산해야 하기 때문에 소수 판별 검사 함수의 성능이 매우 중요하다.

더 보기 »오일러 프로젝트 58

오일러 프로젝트 57

오일러 프로젝트 57 번 문제는 2의 제곱근을 연분수 형태로 전개하는 것을 단계별로 진행할 때, 각 단계를 기약분수 형태로 만들어서 분자와 분모의 숫자 자리수를 비교하는 문제이다. 일단 자리 수가 엄청나게 커지는 관계로 쉬운 문제는 아니다.
더 보기 »오일러 프로젝트 57

오일러 프로젝트 55

오일러 프로젝트 55 번은 라이크렐 수를 구하는 것이다. 대칭수가 될 때까지 뒤집은 숫자를 더해서 비교하는 과정이 들어가기 때문에 BigNumber를 쓰는 것보다 좀 더 깔끔하게 진행하는 것이 좋겠다. 참고로 라이크렐 수는 아직 증명된 것은 아니고, 문제에서는 특정한 가정을 두고 서술된다.
더 보기 »오일러 프로젝트 55

오일러 프로젝트 54

오일러 프로젝트 54 번 문제는 포커게임의 승패를 판정하는 문제이다. 각 플레이어가 받은 카드의 무늬와 숫자를 이용하여 승패를 판정한다. 각 플레이어가 받은 카드를 이용하여 달성한 계급을 판정하는 것 외에 같은 계급에서의 하이카드 혹은 동점일 때 남은 카드에서의 하이카드까지 판별해야하는 부분이 의외로 성가신 문제이다.
더 보기 »오일러 프로젝트 54

Pages: 1 2

오일러 프로젝트 53

이번문제는 조합(경우의 수)과 이항정리에 대한 내용이다.

1, 2, 3, 4, 5 다섯 숫자 중에서 세 개를 고르는 것에는 다음과 같은 10가지 경우가 있습니다.
123, 124, 125, 134, 135, 145, 234, 235, 345

조합론이라는 분야에서는 이것을  \binom{5}{3} = 10 이라고 표시하며, 일반적인 식은 아래와 같습니다.

\binom{n}{r} = \frac{ n! }{r!(n-r)!}

이 값은 n = 23에 이르러야  _{23}C_{10} = 1144066 으로 처음 1백만을 넘게 됩니다. 그렇다면 1 <= n <= 100 일 때 nCr의 값이 1백만을 넘는 경우는 모두 몇 번입니까? (단, 중복된 값은 각각 계산합니다.)

더 보기 »오일러 프로젝트 53

오일러 프로젝트 52

이번 문제는 순열관계에 있는 수에 대한 문제이다. 125874를 2배하면 251748이 되는데, 이 둘은 같은 숫자로 이루어져 있고, 순서만 다릅니다. 2배, 3배, 4배, 5배, 6배의 결과도 같은 숫자로 이루어지는 가장 작은 수는 무엇입니까? 접근 순열관계의 수는 두 수를 구성하고 있는 숫자들이 자리수의 위치만 다르고 모두 같은 구성을 이루고 있다. 숫자 x, y, z 로 이루어진 세 자리 수 xyz 와 zxy 의 차이를 살펴보자. x, y, z는 사실 한자리 자연수이므로 각 수는 다음과 같이 구성된다. “xyz” = 100 * x + 10 *… 더 보기 »오일러 프로젝트 52