src/problems/perm.lisp @ 9b2cfb112dd6

LEXV, PROB, PPER
author Steve Losh <steve@stevelosh.com>
date Sat, 09 Feb 2019 00:07:17 -0500
parents 11df545d1a41
children 2735aa6aab79
(in-package :rosalind)

(defparameter *input-perm* "3")

(defparameter *output-perm* "6
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1")


(define-problem perm (data string)
    *input-perm*
    *output-perm*
  (let* ((n (parse-integer data))
         (count (factorial n))
         (perms (permutations (alexandria:iota n :start 1))))
    (format nil "~D~%~{~A~^~%~}"
            count
            ;; sort to ensure consistent output for the unit test
            (sort (mapcar (curry #'str:join " ") perms) #'string<))))

;; (problem-perm "3")
;; (solve perm)