Skip to content

Instantly share code, notes, and snippets.

View wlodi83's full-sized avatar
focusing

Łukasz Włodarczyk wlodi83

focusing
View GitHub Profile
@wlodi83
wlodi83 / gist:5330448
Last active December 15, 2015 22:08
Warsztaty HTML5
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="description" content="Template strony w HTML'u 5">
<meta name="keywords" content="html5, html, www">
<meta name="author" content="Luaksz Wlodarczyk">
<title>Wstep do HTML5</title>
<!--[if lt IE 9]>
@wlodi83
wlodi83 / gist:4253184
Created December 10, 2012 20:35
make_change - dynamic programming
require 'benchmark'
def make_change(change, *coins)
coins.empty? ? coins = [200, 100, 50, 20, 10, 5, 2, 1] : coins = coins.flatten
denom = []
c = Array.new(change) {|index| index = Float::INFINITY}.unshift(0)
(1..change).each do |j|
coins.each do |coin|
if j >= coin && 1+c[j-coin] < c[j]
c[j] = 1+c[j-coin]
@wlodi83
wlodi83 / gist:4240921
Created December 8, 2012 16:38
greedy algorithm v3 (big amount of coins)
def make_change(number, *coin_values)
coin_values.empty? ? cents = [50, 20, 10, 5, 2, 1] : cents = coin_values.flatten.sort!.reverse
rest = []
while number > 0
el = cents.select {|x| (number % x) == 0}
number.div(el.first.to_i).times { rest << el.first }
number -= el.first.to_i * number.div(el.first.to_i)
cents.pop(el.first)
end
print rest.flatten
@wlodi83
wlodi83 / gist:4240836
Created December 8, 2012 16:01
greedy algorithm v2
def make_change(number, *coin_values)
coin_values.empty? ? cents = [50, 20, 10, 5, 2, 1] : cents = coin_values.flatten.sort!.reverse
rest = []
while number > 0
if number >= cents.first
number.div(cents.first).times { rest << cents.first }
number -= (cents.first * number.div(cents.first))
cents.shift
else
cents.shift
@wlodi83
wlodi83 / gist:4234699
Created December 7, 2012 17:03
greedy algorithm in ruby
def make_change(number, *coin_values)
coin_values.empty? ? cents = [50, 20, 10, 5, 2, 1] : cents = coin_values.flatten
rest = []
if number > 0
cents.each do |c|
while c <= number
number -= c
rest << c
end
end
@wlodi83
wlodi83 / gist:4189323
Created December 2, 2012 15:28
RUBY QUIZ: roman numerals
class Converter
ROMANS = {'M' => 1000, 'D' => 500, 'C' => 100, 'L' => 50, 'X' => 10, 'V' => 5, 'I' => 1}
def is_roman?(line)
line = /[MDCLXVI]+/
end
def is_arabic?(line)
line = /^(?:[123]\d{3}|[1-9]\d{0,2})$/