[白俊17298号-Python Python]おお数
3343 ワード
白駿17298号-呉大洙
条件:「Aiの最大数は右側で、Aiより大きい数の中で一番左の数を意味します.」
上記の条件があるため、使用スタックがAiよりも右側に位置する大きな数が現れると、
これらの値をすぐに保存し、エクスポートして整理できると思います.
以下の論理で解決した
問題を見て長い間悩んでいましたが、
スタックの内功がまだ不足している点を補う必要があるようだ.
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問題を見て長い間悩んでいましたが、
スタックの内功がまだ不足している点を補う必要があるようだ.
Reference
この問題について([白俊17298号-Python Python]おお数), 我々は、より多くの情報をここで見つけました https://velog.io/@oldrock1999/백준-17298번-Python-파이썬-오큰수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol