不格好エンジニア

wordpress.comから引っ越しました。

2016-05-01から1ヶ月間の記事一覧

コーディング面接対策サイトCodilityの練習問題を解いてみた(TapeEquilibrium)

問題 テーブを前半と後半に切断して差分を比較し、最も少ない差分を返す Test results - Codility 回答 headにテープの前半部分を、tailにテープの後半部分を格納する。 インデックスを動かすごとにdiffを再計算する。 def solution(a) sum = a.reduce(:+) h…

コーディング面接対策サイトCodilityの練習問題を解いてみた(FrogJmp)

問題 カエルが目標に到達するためには、最低何回、ジャンプする必要があるか Codility 回答 def solution(x, y, d) ((y - x).to_f / d).ceil end その他 割る前にto_f しないと、小数が切り捨てられてしまうことに注意。 パフォーマンスを考えると、ループさ…

コーディング面接対策サイトCodilityの練習問題を解いてみた(CyclicRotation)

問題 与えられた配列aの各要素をk回,右に動かす(このとき、最後尾の要素は先頭に持ってくる)。 Codility 回答 def solution(a, k) b = [] for current_index in 0..(a.length-1) new_index = (current_index + k) % a.length b[new_index] = a[current_index…

コーディング面接対策サイトCodilityの練習問題を解いてみた(BinaryGap)

問題 Codility nを二進数にして、1に囲まれた0の数を数える 回答 def solution(n) s = n.to_s(2) zeroes = s.split('1') zeroes.pop if n % 2 == 0 return 0 if zeroes.empty? zeroes.map{ |z| z.length }.max end # debug puts solution(20) == 1 puts solu…