[210324][백준/BOJ] 2493번 탑
문제
입출력
풀이
STL stack을 이용해서 문제를 풀었다.
- stack이 empty 일때는 0을 출력한다.
- 위치를 저장하기 위한 인덱스와 입력받은 값을 push 한다.
- top과 입력받은 값을 비교해서 top < 입력받은 값이면 pop을 하며 stack이 empty가 되어서 0이 출력된다.
- top > 입력받은 값이면 stack의 top의 인덱스 값을 출력한다.
코드
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n, m, max = -1;
scanf("%d", &n);
stack<pair<int, int>> S;
for (int i = 1; i <= n; ++i)
{
scanf("%d", &m);
while (!S.empty())
{
if (S.top().second < m)
S.pop();
else if (S.top().second >= m)
{
printf("%d ", S.top().first);
break;
}
}
if (S.empty())
printf("%d ", 0);
S.push({ i, m });
}
}
Author And Source
이 문제에 관하여([210324][백준/BOJ] 2493번 탑), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kwkim95/210324백준BOJ-2393번-탑저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)