[백준 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
'자료구조 및 알고리즘 > 백준' 카테고리의 다른 글
[백준 11866번] 요세푸스 문제 0 (0) | 2023.02.25 |
---|---|
[백준 9012번] 괄호 (0) | 2023.02.18 |
[백준 4949] 균형잡힌 세상 (0) | 2023.02.18 |
[백준 12605] 단어순서 뒤집기 (1) | 2023.02.18 |
백준 C++ 스킬) 문자열 비교하기 (0) | 2023.02.03 |