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

ToDo:

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

ɥ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)» 編集