Ruby | Gviz의 힘을 빌려 내가 코드IQ에서 출제한 문제를 출제 순서대로 배열하여 도전자가 많은 문제를 강조해 보았다

11741 단어 GraphvizcodeiqRuby

Ruby | Gviz의 힘을 빌려 내가 코드IQ에서 출제한 문제를 출제 순서대로 배열하여 도전자가 많은 문제를 강조해 보았다


개요


지비즈의 힘을 빌려 내가 코드IQ에서 출제한 문제를 출제 순서대로 배열해 도전자가 많은 문제를 강조해보았다.

코드IQ에 대한 퀴즈입니다.


CodeIQ에서 엔지니어 대상 질문을 받았습니다.
아래 계정 3개가 있습니다.
https://codeiq.jp/ace/tbpgr/
https://codeiq.jp/ace/tbpgr_badge/
https://codeiq.jp/ace/tbpgr_colosseum_manager/
2013년 12월부터 출제됐다.한 달에 세 문제씩 내요.
출제 횟수도 많아졌기 때문에 Gviz의 힘으로 과거의 문제군을 배열한다
인기 있는 질문을 확인하고 싶습니다.

원시 데이터(LFSV)


제목 정보가 LTCV 파일로 요약됩니다.
no:969  title:第5回 デスマコロシアム  start_at:2014/07/22 challengers:98
no:943  title:技術者の会話  start_at:2014/07/16 challengers:69
no:972  title:Gitに入門しよう!  start_at:2014/07/03 challengers:155
no:971  title:Gitで歴史を捏造する?! start_at:2014/07/07 challengers:62
no:942  title:ポモドーロテクニック  start_at:2014/06/16 challengers:83
no:915  title:第4回 デスマコロシアム  start_at:2014/06/09 challengers:79
no:884  title:Ruby警官から警告を受けろ問題  level1  start_at:2014/05/19 challengers:19
no:883  title:Ruby警官から警告を受けろ問題  level2  start_at:2014/05/19 challengers:14
no:872  title:第3回 デスマコロシアム  start_at:2014/05/12 challengers:104
no:835  title:第2回 デスマコロシアム  start_at:2014/04/14 challengers:92
no:826  title:他人のサイトにモンキーパッチ  start_at:2014/04/07 challengers:25
no:827  title:マインドマップ使ってますか?  start_at:2014/04/07 challengers:25
no:791  title:第1回 デスマコロシアム  start_at:2014/03/18 challengers:141
no:790  title:ChefでLL言語一括Hello  start_at:2014/03/14 challengers:12
no:774  title:Hello Vagrant!  start_at:2014/03/14 challengers:18
no:768  title:2文字10秒で解くJava風Ruby  start_at:2014/02/27 challengers:48
no:746  title:EmmetでHTML高速記述  Lv1 start_at:2014/02/17 challengers:100
no:725  title:EmmetでHTML高速記述  Lv2 start_at:2014/02/17 challengers:74
no:710  title:CoffeeScript入門  start_at:2014/01/29 challengers:26
no:698  title:メタな世界:宣言的な機能追加(基礎)  start_at:2014/01/28 challengers:46
no:697  title:メタな世界:宣言的な機能追加(応用)  start_at:2014/01/28 challengers:17
no:653  title:年賀状プログラム  start_at:2013/12/23 challengers:13
no:625  title:コピペシステム社の粗悪システムを改修  start_at:2013/12/12 challengers:16
LTCV 형식을 모르시는 분들은 아래 내용을 보십시오.
공식 사이트
LTCV FAQ-LSP란 무엇입니까?어디가 좋을까요?
[금북산업] 3분이면 알 수 있는 LTCV 업계의 총결산[LTCV]
액세스 로그 처리가 간편해진 일본산 텍스트 형식 LFSV를 아십니까? #ltsv
참고로 LFSV 문제가 출제되고 있습니다.(2014/09/01 마감일)
https://codeiq.jp/ace/tbpgr_badge/q1024
https://codeiq.jp/ace/tbpgr_badge/q1025

코드

require "gviz"
require "colorable"

ltsv_src = File.open('./problems.ltsv', 'r:utf-8') { |f|f.read }
ltsv = ltsv_src.split("\n").map { |line|Hash[line.split("\t").map{ |column| column.split(":", 2)}] }
color = Colorable::Color.new(:black)

def color_index(challengers)
  color_index = challengers.to_i/10
  color_index = 11 if color_index > 11
  color_index
end

Graph do
  global layout: :sfdp, label:"CodeIQ @tbpgr 出題問題", fontsize:60, size:15, overlap:false, fontname:'MS GOTHIC'
  nodes shape: :ellipse, fontname:'MS GOTHIC', fontsize:10, style: :filled, colorscheme: :paired12
  ltsv.sort_by { |e|e['no'] }.reverse.each_cons(2) do |p1, p2|
    route p1['no'].to_sym => p2['no']
    magnification1 = p1['challengers'].to_i/2
    magnification2 = p2['challengers'].to_i/2
    node p1['no'].to_sym, { label: "#{p1['title']}(#{p1['challengers']})",
        fontsize: 20*magnification1,
        width: 2*magnification1,
        height: 2*magnification1,
        fillcolor: color_index(p1['challengers'])
    }
    node p2['no'].to_sym, { label: "#{p2['title']}(#{p2['challengers']})",
        fontsize: 20*magnification2,
        width: 2*magnification2,
        height: 2*magnification2,
        fillcolor: color_index(p2['challengers'])
    }
  end
  save :"codeiq_problem", :png
end

출력




※ 도전자가 적은 순서대로 배치해보자)

좋은 웹페이지 즐겨찾기