ホームページ > バックエンド開発 > Python チュートリアル > コードの出現 &#- DayDisk フラグメンター (Python)

コードの出現 &#- DayDisk フラグメンター (Python)

Barbara Streisand
リリース: 2024-12-17 10:45:24
オリジナル
162 人が閲覧しました

Advent of Code

Advent of Code 9日目: ディスクフラグメンター

今日の解決策は、今日は Python でのみ実行されました。ちなみに、Python と C# の両方で記述したり、メモを作成したりする時間を見つけるのは難しいので、今後はどちらか一方を実行することを選択します。 。

パート 1

これは非常に簡単で、入力を id と空のスペースに変換するというもので、奇数のインデックスは id で偶数は空のスペース (.) であり、入力の数値に応じて x 回繰り返します。

1234 =>

1 => 1x ID --> 0
2 => 2x 空 --> ..
3 => 3x ID --> 111
4 => 4x 空 --> ....

全体行 => 0..111....

次に、一番右の要素を一番左の空きスペースに移動するように求められました。

つまり、移動 1 ->最初の (.) では、2 つのループを使用してこれを実行します。1 つは後ろから進みます ->前面、もう一方の前面 ->後方。

ID が見つかったら、先頭から移動して最初の空きスペースを見つけ、これらのポイントを切り替えて、右からのすべての数字が左の空きスペースに移動されるまで続けます。

右のインデックスが常に左のインデックスより大きいか、中央で出会っていない限り、続行します。

パート 2

ここで、単に左端の空きスペースを見つけるのではなく、ファイル (ID) 全体に適合する左端の空きスペースを探す必要があります。たとえば、fileId が 9999 の場合、4 つ必要になります。空のスペースを一緒に配置します。そうでない場合は、移動できる次の空のスペースに移動します。空のスペースがない場合は、次の fileId に移動します。

[ネタバレ] ->解決策は GitHub

で見つけることができます。

いつものように、Twitter で連絡したりフォローしたりできます

以上がコードの出現 &#- DayDisk フラグメンター (Python)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート