白駿1138.1行に並ぶ-解答(Python/Python)


🔎 1138番です.質問の表示
https://www.acmicpc.net/problem/1138

💡 問題を解く前に
重要なのは、次のコードでcntをよりよく利用する方法です.
ずっとうろうろしていて、他の人のコードからいくつかのヒントを得ました.😥
📋 コードの表示
from sys import stdin

N = int(stdin.readline())
people = list(map(int, stdin.readline().split()))
check = [0] * N

for i in range(N):
    cnt = 0
    for j in range(N):
        if cnt == people[i] and check[j] == 0:
        	# print("Case 1")
            check[j] = i + 1
            break
        elif check[j] == 0:
        	# print("Case 2")
            cnt += 1
		# print(check)
for i in check:
    print(i, end=" ")
🥕 コード解釈と関連概念
解説を見ていても、中に印刷物を入れて確認しておくと好奇心が解けるので、今回も大量に印刷物を投入しました.
そして私はすぐにコードを理解しました.
Case 2
[0, 0, 0, 0, 0, 0, 0]
Case 2
[0, 0, 0, 0, 0, 0, 0]
Case 2
[0, 0, 0, 0, 0, 0, 0]
Case 2
[0, 0, 0, 0, 0, 0, 0]
Case 2
[0, 0, 0, 0, 0, 0, 0]
Case 2
[0, 0, 0, 0, 0, 0, 0]
Case 1
Case 2
[0, 0, 0, 0, 0, 0, 1]
Case 1
Case 2
[0, 2, 0, 0, 0, 0, 1]
[0, 2, 0, 0, 0, 0, 1]
Case 1
Case 2
[0, 2, 3, 0, 0, 0, 1]
[0, 2, 3, 0, 0, 0, 1]
[0, 2, 3, 0, 0, 0, 1]
Case 1
Case 2
[0, 2, 3, 4, 0, 0, 1]
[0, 2, 3, 4, 0, 0, 1]
[0, 2, 3, 4, 0, 0, 1]
[0, 2, 3, 4, 0, 0, 1]
Case 2
[0, 2, 3, 4, 0, 0, 1]
Case 1
Case 1
[6, 2, 3, 4, 0, 5, 1]
[6, 2, 3, 4, 0, 5, 1]
[6, 2, 3, 4, 0, 5, 1]
[6, 2, 3, 4, 0, 5, 1]
Case 1
[6, 2, 3, 4, 7, 5, 1]

Process finished with exit code 0
これにより、cntの値が最初に与えられたリストの各ビット数が指す番号と同時に、新しいリストに対応する値を追加することができる.
最後に答えの出力フォーマットをよく見なかったので、エラーが発生しました.(残念)
(注:https://fullmoon1344.tistory.com/79)