B - A to Z String @ AtCoder
正規表現、ちゃんと理解しておこう
scan メソッドも使える。 rindex index
知らず
問題 B: A to Z String - AtCoder Beginner Contest 053 | AtCoder
回答
STR = gets.chomp! p STR.match(/(A.*Z)/)[0].length
if使わない…
解けたけど… こうしたかった
puts gets.to_i < 1200 ? "ABC" : "ARC"
明日はこれを解く…
B: A to Z String - AtCoder Beginner Contest 053 | AtCoder
たのしいRuby P184、エラー処理と例外のところ。ちゃんと写経する
markdownでtarget=“_blank"、下記参考にやってみた。一瞬
あっというまに月末
早いものだ。
- たのしいRuby:写経しながらP176まで
- Rubyベストプラクティス:買うのが早すぎた書籍だが、長文コードを読む練習になるかもしれない
- プログラミング言語Ruby:巨大なリファレンスだな。。。たのしいRubyを膨らませた感じ
class << selfや特異メソッドのところ
よく混乱するから役に立ちそうなあとで読むリンクを並べてみる。
これは関係ないけど、読んでおいたほうがよさげ感
ソースコードの美醜
C: 風力観測 - AtCoder Beginner Contest 001 | AtCoder
if文の羅列しか思いつかず、カオスになった。
勉強になったコード
dirs = [ "N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW", ] ws = [3, 16, 34, 55, 80, 108, 139, 172, 208, 245, 285, 327, 1.0/0] deg, dis = gets.split(" ").map(&:to_i) v = (dis.to_f / 6).round w = ws.find_index { |wl| wl > v } dir = w == 0 ? "C" : dirs[((deg * 10 + 1125) / 2250) % 16] puts "#{dir} #{w}"
まだ、ちゃんと分かっていないコード
gets=~/ /;puts (?C[w=[3,16,34,55,80,108,139,172,208,245,285,327,$$].index{|x|$'.to_i<x*6-3}]||%w[NNE NE ENE E ESE SE SSE S SSW SW WSW W WNW NW NNW N][($`.to_i-113)/225])+" #{w}"
人のコードなので、コピペしてだめだったら教えてください
AtCoder始めた
競技プログラミング、BiginnerContestの過去問解くところから。 まずは問題に慣れたい。
if文を?だけで書く技法
n = gets.to_i printf("d\n", (n<100?0:n<=5000?n*10:n<=30000?(n+50000):n<=70000?((n-30000)/5+80000):89000)/1000)
桁埋めとかちゃんとやったはずなのに、忘れてた(´・ω・`)
puts "d"%s
Rubyでつくる人工無能(前半)
恋するプログラム―Rubyでつくる人工無脳 (プレミアムブックス版)
- 作者: 秋山智俊
- 出版社/メーカー: マイナビ出版
- 発売日: 2016/11/28
- メディア: 単行本
- この商品を含むブログを見る
class Responder def initialize(name) @name = name end def response(input) "#{input}ってなに" end def name @name end end class Unmo def initialize(name) @name = name @responder = Responder.new('What') end def dialogue(input) @responder.response(input) end def responder_name @responder.name end def name @name end end def prompt(unmo) unmo.name + ':' + unmo.responder_name + '> ' end puts('Unmo System Prototype : proto') proto = Unmo.new('proto') while true print('> ') input = gets input.chomp! break if input == '' response = proto.dialogue(input) puts(prompt(proto) + response) end