2012年7月22日日曜日

Project Euler-Problem22をgroovyで解いてみる

問題

http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2022

問題を解いたプログラム

1行にすべての値が書かれているとは思わなかった・・・
def alphaRange = 'A'..'Z'
def index = 0
println new File('names.txt').readLines().join(",").split(",").sort().inject(0) {result, line ->
  result + line.split(",").sort().inject(0) {lineTotal, element ->
    lineTotal + (element.inject(0) {elementTotal, chr ->
      elementTotal + alphaRange.indexOf(chr) + 1
    } * (++index))
  }
}