Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 다이나믹 프로그래밍
- 재귀
- XR Interaction Toolkit
- 구현
- 자료구조
- 다익스트라
- 스택
- BFS
- 그래프
- ue5
- DFS
- 유니티
- 누적 합
- 시뮬레이션
- 백트래킹
- 알고리즘
- 문자열
- Team Fortress 2
- Unreal Engine 5
- 백준
- 수학
- VR
- 그리디 알고리즘
- 브루트포스
- c++
- 트리
- 우선순위 큐
- 정렬
- 투 포인터
- 유니온 파인드
Archives
- Today
- Total
1일1알
백준 25556번 포스택 C++ (골드5) 본문
https://www.acmicpc.net/problem/25556
스택에서 뺀 뒤에 뒤에서부터 배치하여 오름차순이 되어야 하기 때문에 스택에 top에는 큰 수가 들어있어야 하고, 작은 수를 되도록 스택에 먼저 넣어야 한다.
만약 스택에 수를 넣을때 스택의 top이 지금 넣을 수보다 크다면 뺄때 오름차순이 불가능하다.
그렇기 때문에 스택에 수를 넣을때 스택의 top이 지금 넣을 수보다 작다고 무조건 넣으면 안되고 스택의 top이 지금 넣을 수보다 작은 수중 제일 큰 수를 찾아서 해당 스택에 넣어야 한다.
이렇게 진행하다가 만약 모든 스택의 top이 지금 넣을 수보다 크다면 꺼냈을때 오름차순이 불가능하다.
#include <iostream>
#include <string>
#include <vector>
#include <math.h>
#include <algorithm>
#include <utility>
#include <stack>
#include <queue>
#include <math.h>
#include <set>
#include <map>
#include <list>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>
#include <limits.h>
using namespace std;
using int64 = long long;
int n;
vector<int> v;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
vector<stack<int>> sv(4);
cin >> n;
v = vector<int>(n);
for (int i = 0; i < n; i++)
{
cin >> v[i];
}
bool possible = true;
for (int i = 0; i < n; i++)
{
int num = v[i];
int maxNum = -1;
int idx = -1;
for (int j = 0; j < 4; j++)
{
if (sv[j].empty())
{
if (maxNum < 0)
{
maxNum = 0;
idx = j;
}
}
else {
if (sv[j].top() < num)
{
if (maxNum < sv[j].top())
{
maxNum = sv[j].top();
idx = j;
}
}
}
}
if (idx == -1) {
possible = false;
break;
}
sv[idx].push(num);
}
if (possible) cout << "YES";
else cout << "NO";
}
'알고리즘' 카테고리의 다른 글
백준 25194번 결전의 금요일 C++ (골드5) (0) | 2024.06.05 |
---|---|
백준 17953번 디저트 C++ (골드5) (0) | 2024.06.02 |
백준 15488번 나이트가 체스판을 벗어나지 않을 확률 C++ (골드5) (0) | 2024.06.01 |
백준 1930번 정사면체 C++ (골드4) (0) | 2024.05.31 |
백준 17349번 1루수가 누구야 C++ (골드4) (0) | 2024.05.30 |