Skyscrapers Challengeの短いバージョン
仕事
建物の高さの配列と正の整数を指定すると、建物がk
正確k
に見えるように、高さのすべての順列(重複なし)を見つけます。
建物はすべて、背の低いまたは等しい高さの建物をすべて非表示にします。
入力および出力の形式はすべて有効です。
入力配列が空になることはありません。
正確に同じ数の建物を見ることができない場合は、答えではなくエラーではないものをすべて出力します。
例:
(出力の長さは非常に長い出力に対して表示されますが、出力はすべての可能な順列でなければなりません)
input:[1,2,3,4,5],2
output: 50
input:[5,5,5,5,5,5,5,5],2
output: []
input:[1,2,2],2
output:[(1,2,2)]
Seeing from the left, exactly 2 buildings are visible.
input:[1,7,4],2
output:[(4, 7, 1), (1, 7, 4), (4, 1, 7)]
input:[1,2,3,4,5,6,7,8,9],4
output:67284
input:[34,55,11,22],1
output:[(55, 34, 11, 22), (55, 22, 34, 11), (55, 34, 22, 11), (55, 11, 34, 22), (55, 22, 11, 34), (55, 11, 22, 34)]
input:[3,4,1,2,3],2
output:31
これはコードゴルフなので、最短のコードが勝ちます
オプション:可能であれば、のようなものを追加できますかif length is greater than 20: print length else print answer
。コードではなく、フッターに。
[1,2,3,4,5],5 -> [(1,2,3,4,5)]
。現在のテストケースでは、回答がすべての建物の表示をサポートできることを確認していません(ただし、実際に問題があるかどうかはわかりません)。