ゼロから始めるLeetCode Day79「1282. Group the People Given the Group Size They Belong To」
概要 海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。 どうやら多くのエンジニアはその対策としてLeetCodeなるサイトで対策を行うようだ。 早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイトであり、海外のテックカンパニーでのキャリアを積みたい方にとっては避けては通れない道である。 と、仰々しく書いてみましたが、私は今のところそういった面接を受ける予定はありません。 ただ、ITエンジニアとして人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。 Leetcode Python3で解いています。 ゼロから始めるLeetCode 目次 前回 ゼロから始めるLeetCode Day78 「206. Reverse Linked List」 次回 ゼロから始めるLeetCode Day80「703. Kth Largest Element in a Stream」 Twitter やってます。 問題 1282. Group the People Given the Group Size They Belong To 難易度はMedium。 問題としては、 0 から n - 1 までのIDを持つ人が n人 存在し、それぞれはちょうど1つのグループに所属しています。各人が所属するグループのサイズを示す長さ n の配列 groupSizes が与えられた場合、グループの数と、各グループに含まれる人の ID を返します。 任意の解を任意の順番で返すことができ、 ID についても同様です。また、少なくとも一つの解が存在することが保証されています。 Example 1: Input: groupSizes = [3,3,3,3,3,1,3] Output: [[5],[0,1,2],[3,4,6]] Explanation: Other possible solutions are [[2,1,6],[5],[0,4,3]] and [[5],[0,6,2],[4,3,1]]. Exam