相変わらず競技プログラミングをやっています。
さて、競プロの問題で、配列の全ての要素の組み合わせを取得したい状況がありました。
結論はpermutationです。(実務では見かけたことがない…)
コード
irb(main):004> array = [1, 2, 3]
=> [1, 2, 3]
irb(main):005> array.permutation
=> #
irb(main):006> array.permutation.to_a
=> [[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]]
配列に対して、permutationすると、全ての組み合わせを作り出してくれます。
全ての組み合わせを取得した後は、好きに加工して使う形になります。
では!