K2PC(Easy)A/B,天下一予選B A問題 解いてみた
ただのプログラミング日記ですね.日常生活に関しては Twitter を御覧くださいということで一つ.普通の日記書きたいんですけどね. K2PC(Easy) A 問題 ing = gets.chomp.split.map(&:to_i) hamb = gets.to_i puts ing.each_with_index.collect{|e, i| hamb*(i+1) - e > 0 ? hamb*(i+1) - e : 0 }.join(" ") 1 行目:ご飯の材料って ingredient って言うんですね.勉強になった 4-5 行目:ハンバーガー 1 個あたりそれぞれの材料が 1,2,3 個ずつ必要,しかも数字が順番に来てくれるので,それぞれの個数を配列に格納して each_with_index で取り出した添字に1を足して必要数を掛けて,そこから今ある個数を引きました.それが 0 より大きければ足りない数に変更,そうでなければ 0 に変更.3 項演算子楽しい 6 行目:↑を空白スペース区切りで出力 B 問題 lines = gets.to_i tateren_taisei = gets.chomp.split.map(&:to_i).sort.reverse music = [] possible = [] lines.times{music = xlong[i] possible 問題名を見て「まさか……?」と思ったら本当にそういう問題でした 2 行目:はじめてのどんよくほう.どうせ後で多い順に照らし合わせるなら今ここでソートしちゃえ,ということで.よく思うんだけど rsort 的なメソッドって無いんすかね.まあ自分で実装すればいいだけなんだけども 6 行目:譜面を 1 行毎読み込んで鍵盤ごとにぶつ切りにして配列にする.譜面を左から見てる感じ 7 行目:譜面を→列と行を入れ替えて(あればいいな〜〜と思って検索したら transpose が見つかってビビった)(これで今は譜面を上から見てる感じ)→鍵盤ごとに分かれている配列それぞれに対して,ノートが当たっていない行を削除(実際には "-" でスプリット)→一番上の行が "-" だ...