PostgreSQLで「1時間以内に解けなければプログラマ失格となってしまう5つの問題」の5問目を解いてみた
久しぶりにこういうのやってみました。良い問題。
1時間以内に解けなければプログラマ失格となってしまう5つの問題が話題に
create or replace function eval(expr text, out ret integer) as $$begin execute 'select ' || expr into ret; end;$$ language plpgsql; with op (c) as ( select unnest(ARRAY[ ' + ', ' - ', '' ]) ), a (c) as ( select 1 || op1.c || 2 || op2.c || 3 || op3.c || 4 || op4.c || 5 || op5.c || 6 || op6.c || 7 || op7.c || 8 || op8.c || 9 from op as op1 , op as op2 , op as op3 , op as op4 , op as op5 , op as op6 , op as op7 , op as op8 ) select c from a where eval(c) = 100 order by 1 ;