본문 바로가기

순열2

프로젝트 오일러 #62 세제곱수 순열 이번 문제는 난이도 15% 문제네요. 저는 의외로 쉽게 풀었습니다. (단순무식법으로요.) 서로 다른 세제곱수 5개가 같은 숫자들로 이루어진 경우 그 중 가장 작은 수를 구하라는 문제입니다. 사실 이 문제를 정석적으로 푼다면, 정확하게 5개가 나오는지 검사해야 하지만, 저는 그것까지는 검사하지 않았습니다. 또한 같은 숫자가 4개 이상 나오는 것도 배제했습니다. 사실 그러면 안 되지만, 배열에다가 데이터를 저장하는 방식을 이용하다보니, 같은 숫자가 4개 이상 나오면 안 되어서요. 해시를 쓰면 좀 더 나으려나요. 그러면 자릿수가 6자리인것, 7자리인것, .. 형태로 정확하게 5개가 나오면서, 같은 숫자가 4개 이상 나오는 것도 허용할 수 있었을텐데요. 그치만 복잡한 자료구조 쓰는 것을 귀찮아해서요. (아무래도.. 2016. 6. 20.
[C/C++] 프로젝트 오일러 #24 : 백만번째 순열 수 구하기 프로젝트 오일러 #24 백만번째 순열 수 구하기 문제는 0부터 9까지의 숫자로 이루어진 모든 순열(permutation)을 사전 순서(lexicographic order)로 정렬했을 때, 백만 번째 순열을 구하라는 것입니다. 우리가 진법을 계산할 때, 과연 어떻게 할까요?예를 들어서 723 을 8진법으로 계산한다면요?이 계산을 위해서 우리는 나누기 연산을 계속 하게 됩니다.  중학교 수학을 들추어 보면 보통 다음과 같이 계산을 합니다.으로 723은 8진수로 \(1323_8\)으로 표시가 됩니다. 이것을 수식으로 표현하면 다음과 같이 표현할 수 있습니다.\[ 723 = 1 \cdot 8^3 + 3 \cdot 8^2 + 2 \cdot 8^1 + 3 \cdot 8^0 \]이야기는 우리는 8의 3승부터 차례로 .. 2015. 1. 27.