프로젝트 오일러 24
0, 1, 2, 3, 4, 5, 6, 7, 8, 9로 만들 수 있는 1,000,000번째 사전식 순열은?
clojure.math.combinatorics
의 nth-permutation
함수를 이용하면 바로 답을 구할 수 있다. 다만 인덱스가 0부터 시작한다는 점에 주의해야 한다.
(ns p024
(:require [clojure.math.combinatorics :as c]))
(defn solve []
(apply str (c/nth-permutation (range 10) (dec 1000000))))
실행 결과는 다음과 같다.
p024=> (time (solve)) "Elapsed time: 0.249825 msecs" "??83915460"
순열을 직접 구현해 풀이를 시도했는데, 답을 구하기는 했지만 결과가 만족스럽지는 못했다. 순열을 구하는 방법은 순열 구하기에 따로 정리했다.