[白俊17298号-Python Python]おお数


白駿17298号-呉大洙

Solution


条件:「Aiの最大数は右側で、Aiより大きい数の中で一番左の数を意味します.」
上記の条件があるため、使用スタックがAiよりも右側に位置する大きな数が現れると、
これらの値をすぐに保存し、エクスポートして整理できると思います.
以下の論理で解決した
1. 오큰수가 없는 경우에는 '-1' 이기 때문에 결과값을 저장할 배열을 초기화(-1 * 수열의 크기) 해준다.

2. 배열의 index를 저장할 stack 선언

3. for문을 사용하여 첫 index를 제외한 arr의 모든 요소를 검색

4. while문을 사용하여 조건에 충족하는 수를 검색

Code

N = int(input())
arr = list(map(int,input().split()))
result = [-1] * N
stack = [0]

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

print(*result)
Feedback
問題を見て長い間悩んでいましたが、
スタックの内功がまだ不足している点を補う必要があるようだ.