Skip to content

Instantly share code, notes, and snippets.

def mode(array)
el_count = {}
array.each do |n|
if el_count.has_key?(n)
el_count[n] = el_count[n] + 1
else
el_count[n] = 1
end
end
el_count.select { |k, v| v == el_count.values.max }.keys
ans = {}
for i in 1..1_000_000
moves = 0
morph = i
until morph == 1 do
if ans[morph] != nil
moves += ans[morph]
break
else
@leeacto
leeacto / RPN_rec.rb
Last active December 19, 2015 05:19
class RPNCalculator
def evaluate(string)
return string.to_i if string.split(' ').count == 1
sarray = string.split(' ')
#Check for Valid setup
syms = 0
nums = 0
valchars = true
sarray.each do |c|
def d(num)
arr = (1..(num/2)).to_a.keep_if { |i| num % i == 0}
arr = [1] if num == 1
arr.inject(:+)
end
st = Time.new
amic = []
@leeacto
leeacto / Sieve.rb
Last active December 19, 2015 04:19
def sieve(num)
first_arr = Array.new(num) { |i| i }
2.times { first_arr.delete_at(0) }
primes = []
while true
break if first_arr[0]**2 >= num
first_arr.delete_if { |n| n % first_arr[0] == 0 && first_arr[0] != n }
primes << first_arr.slice!(0)
end
primes += first_arr
@leeacto
leeacto / PEuler4.rb
Last active December 19, 2015 03:29
st = Time.new
top = 999*999
found = false
pal = true
until found == true do
#check if palindrome
tops = top.to_s
if tops != tops.reverse
pal = false
@leeacto
leeacto / flatten.rb
Last active December 19, 2015 02:18
def flatten(array)
a = [] #Must store elements somewhere
array.each do |x| #Go Through each element
if x.class != Array #If the Element is Not an Array
a << x #Store Element in Array 'a'
else
a += flatten(x) #Add flattened array to previous array
end
end
return a #When all elements are non-arrays, return new array filled with non-array elements
@leeacto
leeacto / PEuler15.rb
Last active December 19, 2015 00:49
def paths(row, col)
return 1 if row == 3 && col == 3
return 0 if row > 3 || col > 3
return paths(row + 1, col) + paths(row, col + 1)
end
def new_path(tot_row, tot_col)
curr_row = 0
curr_col = 0
known = {}
# Don't forget to check on intialization for a card length
# of exactly 16 digits
class CreditCard
def initialize(cc)
@cc_int = []
raise ArgumentError.new("CC Number is not 16 Digits") if cc.to_s.length != 16
cc.to_s.each_char { |ch| @cc_int << ch.to_i if ch != ' ' }
end
def check_card
GRID = "08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08
49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00
81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65
52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91
22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80
24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50
32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70
67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21
24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72
21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95