Description:
プリンタのキューは次の様にして、jobを実行していく。
- キューから先頭のjobを取り出す。
- このjobより優先度の高いjobがキューに入っているなら、このjobを一番後ろに回る。そうでないなら、実行。
キューに入っているjobの優先度が与えられるので、先頭からn番目に入っているjobが実行されるのは何番目になるか答えよ。
jobの数は最大で100。優先度は1から9で、9が最も優先。
Answer:
残っているjobの優先度の分布を見ながら、上記の通り実装してやればよい。
これで、優先度の数*jobの数の計算時間で実装できる。
優先度の数*log(jobの数)のアルゴリズムもあるが、この問題では数が小さいので不必要。
Source: