WASH YOUR HANDS

아이의 영어 공부 신문에 나온 문제.

 다음 영어 알파벳은 각각 0에서 9까지의 숫자값을 가진다. 각 알파벳의 값을 구하라.

WASH
 + YOUR
-----------
  HANDS

require 'benchmark'

p Benchmark.measure {
  i = 1
  "ADHNORSUWY".each_char.map { |c| c }.permutation.to_a.collect { |a| a.join }.each do |s|
    strings = ["WASH", "YOUR", "HANDS"].collect do |ss|
      ns = ss.tr(s, "0123456789")
      ns = ns[1..-1] if ns[0] == '0'
      ns
    end
    if eval("#{strings[0]} + #{strings[1]} == #{strings[2]}") then
      puts "SOLUTION : ##{i}"
      (0..9).each { |i| puts "#{s[i]} = #{i}" }
      i += 1
    end
  end
}

문제를 풀려니 너무 막연하다는 느낌이 들더니 12개의 값을 가지는구나...

댓글

이 블로그의 인기 게시물

터미널에서 스칼라 파일 직접 컴파일, 실행

로잉 머신 운동 2달째

curses 라이브러리 간단한 정리