자료구조 및 알고리즘/백준
[백준 17608]막대기 문제 최댓값 갱신 원리 및 논리 파악하기!
아기사우르스
2023. 2. 16. 02:47
728x90
자주 쓰이는 트릭
#include <iostream>
#include <stack>
using namespace std;
int main() {
int max = 0, n, m, cnt = 0;
stack<int> s;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> m;
s.push(m);
}
while (s.size())
{
if (max < s.top()) // max=0으로 함으로써 꼬임없이 잘 할 수 있다.
{ // 따라서 첫번째는 무조건 cnt++
//그런데 이전 값보다 큰지 안큰지 비교하고 갱신해야한다.
max = s.top();
cnt++;
}
s.pop();
}
cout << cnt;
}
출처는 https://korean-otter.tistory.com/entry/17608-%EB%B0%B1%EC%A4%80-%EB%A7%89%EB%8C%80%EA%B8%B0-C
728x90