배운 것
for문을 n-1부터 돌리는 아이디어..!
정답 코드
// Authored by : haneulkimdev
// Co-authored by : -
// http://boj.kr/98a57090ad0b472f86492f495a362127
#include <bits/stdc++.h>
using namespace std;
int a[1000000];
int ans[1000000];
int main(void) {
ios::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
for (int i = 0; i < n; i++) cin >> a[i];
stack<int> S;
for (int i = n - 1; i >= 0; i--) {
while (!S.empty() && S.top() <= a[i]) S.pop();
if (S.empty())
ans[i] = -1;
else
ans[i] = S.top();
S.push(a[i]);
}
for (int i = 0; i < n; i++) cout << ans[i] << ' ';
}
'Algorithm > C++' 카테고리의 다른 글
[백준 2667] 단지번호붙이기 (0) | 2022.09.04 |
---|---|
[백준 2583] 영역 구하기 (0) | 2022.09.04 |
[백준 6198] 옥상 정원 꾸미기 (0) | 2022.09.03 |
[백준 7562] 나이트의 이동 (0) | 2022.09.01 |
[백준 5427] 불 (0) | 2022.08.31 |
댓글