一身上の都合により取り下げたコードを諸事情でもっかいあげます。
お題:1時間以内に解けなければプログラマ失格となってしまう5つの問題が話題に
本来アルゴリズムを考える問題でも考えずに解けてしまうPythonはすごい。
まっとうな解き方は他の方の記事を参考にしたいので教えてください!
やってる事は全組み合わせをeval
で試すという、引数のチェックを怠ると死ぬ系うんこ処理で実現させました。
最初は四則演算かと思ってたよ!
q5.py
import itertools as it
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9]
num_str = map(str, nums)
#ops = ["+", "-", "/", "*", ""]
ops = [" + ", " - ", ""]
opss = it.tee(ops, len(nums) - 1)
for op_c in it.product(*opss):
evl = num_str[0]
for idx, op in enumerate(op_c):
evl += op + num_str[idx+1]
rst = eval(evl)
if rst == 100:
print evl