1/19
Loading...
📱最近のアプリ一覧!
📱 スマホの最近のアプリ画面を思い出して。 • アプリを開く → 一覧の最前面へ • メモリ不足 → 最も古いアプリを終了 • アプリ名で → 即座に探して切替 最近N個だけ残すこのルールがLRU!
Loading...
📱 スマホの最近のアプリ画面を思い出して。 • アプリを開く → 一覧の最前面へ • メモリ不足 → 最も古いアプリを終了 • アプリ名で → 即座に探して切替 最近N個だけ残すこのルールがLRU!
あなたはスマホのバックグラウンドアプリ管理者を作っています。メモリが小さいため、最近使ったアプリを最大N個までしか残せません。 ユーザーは2つの動作を行います。 - launch(app, screen): アプリを起動(または再び開く)し、見ていた画面番号screenを覚えておきます。すでに生きているアプリなら画面番号を更新し『最も最近使用』に上げます。新しいアプリですでにN個起動中なら、最も長く使っていないアプリを終了(メモリ解放)し、新しいアプリを表示します。 - switchTo(app): そのアプリに切り替えます。生きていれば覚えていた画面番号をそのまま見せ(そのアプリが『最も最近使用』になります)、すでに終了したアプリなら-1を返します(最初の画面から起動し直し)。 動作の順序が与えられたとき、各switchToの結果を順に求め、最後のメモリ状態を出力してください。
N = 3
launch("MAP", 1)
launch("CAM", 2)
launch("MSG", 3)
switchTo("MAP")
launch("WEB", 4)
switchTo("PAY")
switchTo("MSG")
launch("CAM", 5)switchTo("MAP") → 1
switchTo("PAY") → -1
switchTo("MSG") → 3
메모리: CAM, MSG, WEB (최근→오래된)MAPに切り替えるとMAPが最も最近使用に上がります。WEB起動時にメモリが満杯になり、最も古いCAMが終了します。PAYは起動していないので-1。最後のCAM起動で再び満杯になり、最も古いMAPが終了し、最終メモリは最近順にCAM、MSG、WEBです。