ぎゅうぎゅうシーケンス
締め切りが 2017/03/07 10:00 AM なので,その 1 分後に投稿されるように予約
【問題】
整数値の並びがあります。
この並びの中で"1", "2", "3"をすべて含む区間のうち、最も小さい区間サイズを調べてください。
たとえば、{3, 4, 2, 6, 5, 1, 3, 3, 2}のような並びの場合、最後の4要素分{1, 3, 3, 2}は、"1", "2", "3"のすべてを含み、かつサイズが最小(4)になっています。
【入力】
1行目に正の整数値の数N(最大5000)、2行目に正の整数値(100より小さい)がN個、半角スペース区切りで書かれています。
また、2行目には"1", "2", "3"のすべてが少なくとも1つずつは含まれています(つまり、区間が必ず見つかるデータになっています)。
【出力】
最小の区間サイズのみ出力してください。
【入出力サンプル】
Input
9
3 4 2 6 5 1 3 3 2
Output
4
===================
逐次探索していっても,計算時間は問題ない
f = function(x) {
seq = 1:3 # 探索対象数値
Min = n = length(x)
for (i in 1:n) { # 区間開始数値の探索
match = seq %in% x[i] # 1, 2, 3 のいずれか
if (any(match)) { # 1, 2, 3 のいずれかである
delm = seq[!match] # 区間終了はその数値以外
for (j in (i+1):n) { # 区間終了数値の探索
match2 = delm %in% x[j] # 終了数値に含まれるか
if (any(match2)) { # 終了数値である
delm = delm[!match2] # 終了数値から取り除く
if (length(delm) == 0) { # 1,2,3 すべてが出ていたら
Min = min(Min, j-i+1) # 最小値を更新して
break # 次の区間開始を探索
}
}
}
}
}
cat(Min)
}
if (0) {
f(c(3,4,2,6,5,1,3,3,2)) # 4
} else {
f(scan(file("stdin", "r"))[-1])
}
CSVからHTMLに変換しよう
締め切りが 2017/03/02 10:00 AM なので(三ヶ月も先だぞ),その 1 分後に投稿されるように予約
設問
あなたはCSVフォーマットのデータを、テーブルタグを用いてHTML化する仕事を任されました。
もちろんこのような処理を行うツールはありますが、今後カスタマイズすることを前提に自動化したいとのこと。
そこで、CSVからHTMLに置換するプログラムを作ることになりました。
求められるプログラムの前提条件は、以下の通りとなります。
標準入力から、CSVフォーマット(wikipedia参照)のデータが送られる
なおCSVはコンマ「,」(U+002C) 区切りで、文字列フィールドはダブルクォート「"」(U+0022)で囲まれる場合がある
CSVの文字列フィールドに、改行を含む制御文字や、全角文字は含まれないものとする
CSVにはヘッダ行が必ず存在し、カラム名を表している
CSVを読み込み、table, tr, th, tdタグを用いてHTMLに変換すること
このときカラム名はthタグで囲み、各レコードのフィールドはtdタグで囲むこと
文字列フィールドは文字実体参照(wikipedia参照)を用いてエスケープ処理をすること
ただし、(大なり記号)、&(アンパサンド)のみの対応でよいものとする
なお出力するHTMLは部分的なものであり、テーブル関連タグ以外は用いないこと
また、出力するHTMLに整形のための改行は含めないこと
変換したHTMLを標準出力に返すこと
以下、置換例となります。
【入出力サンプル】
標準入力
"x","y"
1,2
標準出力
x | y |
---|---|
1 | 2 |
実際の分析業務において、データをHTMLに変換して可視化するという仕事は、決して珍しくありません。
その背景には、CSSを用いたレイアウトなど、様々な応用が利くため、可視化手段として扱いやすいという理由があります。
是非挑戦してみてください!
【問題】
標準入力から、CSVフォーマットでデータが送られます。
このデータをテーブルタグを用いてHTMLに変換し、その結果を標準出力に返してください。
なお、文字列フィールドのエスケープ処理も忘れずに。
※ご利用のブラウザによって、エスケープ処理された文字が変換されて表示される箇所があります
=============================
素直にプログラムするだけ