본문 바로가기

프로그래밍 기술 노트/Problem Solving

[PS/Clojure] HackerRand - Algorithms - Sherlock and Cost

DP 를 사용하는 Sherlock and Cost

난 못풀었다ㅜ 코드는 설명을 듣고 Clojure로 구현한 코드.

 

Sherlock and Cost | HackerRank

Given array A, B and relation between them find the cost of array A.

www.hackerrank.com

 

 

Lee-WonJun/ProblemSolving

알고리즘 세미나 . Contribute to Lee-WonJun/ProblemSolving development by creating an account on GitHub.

github.com

(defn abs [x] (max (- x) x))

(defn fun ([v] (fun v 0 0))
  ( [v dp1 dp2]
    (if (= (count v) 1)
      (max dp1 dp2)
      (let [f (first v)
            s (second v)
            dp1-re  (max dp1 (+ dp2 (abs (- 1 f))))
            dp2-re  (max (+ dp1 (abs (- 1 s))) (+ dp2 (abs (- f s))))]
        (recur (rest v) dp1-re dp2-re)))))

(defn cost [B]
    (fun B)
)

 

"1개를 제외하고 나머지에 1씩 더한다" 이것을 "1개만 1을 뺀다" 와 같이 생각하는 것이 포인트..

 

728x90