順番に実行する必要があるジョブのリストが与えられ、それぞれが実行するスロットを使用して、ジョブを実行した後、次の2つのスロットで同じジョブを実行できない場合(スロットの冷却) )?ただし、このクーリングオフスロットには別のジョブを割り当てることができます。
例えば、
[9,10,9,8] => output: 5
ジョブはとして割り当てられるため[9 10 _ 9 8]
です。
1.まず、9には2つの冷却スポットが必要です_ _。だから私たちは始め9 _ _
ます。
2.次のジョブ10は前のジョブ9とは異なるため、_ _の1つを割り当てることができます。その後、我々は持ってい9 10 _
ます。
3.第三に、最初のジョブ9は同じジョブであり、冷却時間を必要とするため、9は現在割り当てられません。9 10 _ 9
。
4.最後に、8は以前の2つのジョブと同じではないため、9の直後に割り当てることができ、これは最後のジョブであるため、冷却時間を必要としません。最終的なリストは9 10 _ 9 8
5で、予想される出力はスポット数(またはスロット数)です。
テストケース:
[1,2,3,4,5,6,7,8,9,10] => output : 10 ([1 2 3 4 5 6 7 8 9 10])
[1,1,1] => output: 7 ([1 _ _ 1 _ _ 1])
[3,4,4,3] => output: 6 ([3 4 _ _ 4 3])
[3,4,5,3] => output: 4 ([3 4 5 3])
[3,4,3,4] => output : 5 ([3 4 _ 3 4])
[3,3,4,4] => output : 8 ([3 _ _ 3 4 _ _ 4])
[3,3,4,3] => output : 7 ([3 _ _ 3 4 _ 3])
[3,2,1,3,-4] => output : 5 ([3 2 1 3 -4])
[] => output : 0 ([])
[-1,-1] => output : 4 ([-1 _ _ -1])
入力値には任意の整数(負、0、正)を指定できます。ジョブリストの長さは0 <=長さ<= 1,000,000です。
出力は、テストケースで出力として示される整数(スロットの総数)になります。括弧内のリストは、出力の生成方法です。
受賞基準
コードゴルフ
[]
ですか?