Created
October 19, 2012 14:14
-
-
Save kazuph/3918444 to your computer and use it in GitHub Desktop.
ProjectEuler Problem 11
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
data = [ [8,2,22,97,38,15,0,40,0,75,4,5,7,78,52,12,50,77,91,8], | |
[49,49,99,40,17,81,18,57,60,87,17,40,98,43,69,48,4,56,62,0], | |
[81,49,31,73,55,79,14,29,93,71,40,67,53,88,30,3,49,13,36,65], | |
[52,70,95,23,4,60,11,42,69,24,68,56,1,32,56,71,37,2,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,3,45,2,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,2,62,12,20,95,63,94,39,63,8,40,91,66,49,94,21], | |
[24,55,58,5,66,73,99,26,97,17,78,78,96,83,14,88,34,89,63,72], | |
[21,36,23,9,75,0,76,44,20,45,35,14,0,61,33,97,34,31,33,95], | |
[78,17,53,28,22,75,31,67,15,94,3,80,4,62,16,14,9,53,56,92], | |
[16,39,5,42,96,35,31,47,55,58,88,24,0,17,54,24,36,29,85,57], | |
[86,56,0,48,35,71,89,7,5,44,44,37,44,60,21,58,51,54,17,58], | |
[19,80,81,68,5,94,47,69,28,73,92,13,86,52,17,77,4,89,55,40], | |
[4,52,8,83,97,35,99,16,7,97,57,32,16,26,26,79,33,27,98,66], | |
[88,36,68,87,57,62,20,72,3,46,33,67,46,55,12,32,63,93,53,69], | |
[4,42,16,73,38,25,39,11,24,94,72,18,8,46,29,32,40,62,76,36], | |
[20,69,36,41,72,30,23,88,34,62,99,69,82,67,59,85,74,4,36,16], | |
[20,73,35,29,78,31,90,1,74,31,49,71,48,86,81,16,23,57,5,54], | |
[01,70,54,71,83,51,54,69,16,92,33,48,61,43,52,1,89,19,67,48] ] | |
@max = 0 | |
module Problem011 | |
# - | |
def horizontal ary | |
ary.each do |row| | |
row.each_cons(4) do |con| | |
r = con.inject(&:*) | |
@max = r if r > @max | |
end | |
end | |
end | |
# / | |
def slash ary | |
(0..16).each do |n| | |
(0..16).each do |m| | |
r = (0..3).inject(1){|p, i| p * ary[n + i][m + i]} | |
@max = r if r > @max | |
end | |
end | |
end | |
end | |
include Problem011 | |
horizontal data | |
# 転置した配列を渡す | |
horizontal data.transpose | |
slash data | |
# 90度回転した配列を渡す | |
slash data.map(&:reverse).transpose | |
p @max |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment