«前の日記(2015-07-05) 最新 次の日記(2015-07-12)» 編集

ToDo:

  • 99 深呼吸して、おちけつ (~12/31 あと46日)
  • 98 毎日アウトプットを重きにおいた目標をたてる (~12/31 あと46日)
  • 97 買物は行動を変えるもの・ことに限る (~12/31 あと46日)
  • 96 合理的な行動はときに我慢を強いる(~12/31 あと46日)

ɥozɐʞıɥ


2015-07-06 まだまだこれから [長年日記]

_ [Clojure] CodeIQチャレンジ

Clojureで試してみましたが2問目の5000行は返ってきません。mklstとcountmatch両方遅いのは判っているのですがうまく出来ませんでした。twitterで励ましていただいたのですがまだまだこれから試してみたいのです。threadを分けても考えましたが時間切れでした。まぁ問題のデータも持っているのでこれからじっくり隙を見てやってみます。

(use 'clojure.java.io)

(def lst (with-open [rdr (reader *in*)]

(doall

(concat () (line-seq rdr)))))

(def lst (map #(Integer/parseInt %) lst))

(def m (first lst))

(def lst (nthnext lst 2))

(defn mklst[m lst]

(map #(- m %)

(reverse

(drop-last

(reduce #(conj %1 (+ (last %1) %2) )

(list (first lst)) (next lst) )))))

(defn countmatch[m lst]

(reduce

#(if

(some #{(second %2)}

(nthnext lst (+ 2 (first %2))))

(inc %1) %1)

0

(partition 2 (interleave (range) (mklst m lst)))))

(println (loop [r 0 l lst]

(if (= 1 (count l)) r

(recur (+ r (countmatch m l)) (next l)))))



2002|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|
«前の日記(2015-07-05) 最新 次の日記(2015-07-12)» 編集