不格好エンジニア

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

Codility

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

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

コーディング面接対策サイト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…