[テストコード]ああ、大数


プログラマコードテストの準備
https://www.acmicpc.net/problem/17298
質問の説明は次のサイトで確認できます.

<私が作成したコード>

a = input()
arr = []

for i in a :
    if(i.isnumeric()) :
        arr.append(int(i))
        
for i in range(len(arr)) :
    for j in range(i+1,len(arr)) :
        if arr[i] < arr[j] :
            print(arr[j], end = ' ')
            break
    else :
        print(-1, end = " ")

<他人が説明したコード>

import sys
from collections import deque
N = int(sys.stdin.readline())
arr = list(map(int, sys.stdin.readline().split()))
stack = []
stack.append(0)
okunsu = [-1 for _ in range(N)]

for i in range(1,N) :
    print(stack)
    while stack and arr[stack[-1]] < arr[i] :
        okunsu[stack.pop()] = arr[i]
    stack.append(i)
print(*okunsu)


🧑🏻 ポスト


結果は同じですが、タイムアウトエラーが発生しました.
Pythonでは、stackがリストを通過し、queueがdequeを使用するのは時間の複雑さの面で良いです.
*リストに印刷する場合は、リストの内容のみ印刷できます.