Algorithm/스택
백준 2493 cpp // 스택 idea 발상, 초기예외 처리하는법 : 범위밖의 객체를 push하라
https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net *의사코드 및 전체코드 #include using namespace std; int n; stack s;//높이,인덱스 int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); /** * 1. 맨왼쪽에 {100,000,001 / idx 0} 의 탑이있다고 가정 => 0을 리턴하도록 * 2. 나보다 작은 타워는 쓸모없음 -> 모두 p..
백준 1874 cpp // 유효스택검사 알고리즘
https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net * 정처기 단골문제 : 다음 중 stack 의 출력결과로 나올수없는것은? 문제와 유사하다. * 1씩 증가 구현방법 해결 : int cnt++ 벡터나 배열로 구현할 필요가 없다. *의사코드 1. while(n--) // 모든타겟에대해 2. while(cnt 불가능 , 끝내기 4. 가능하면, pop, "-" ex) ta..
백준 10773 cpp // 스택사용법
https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net #include using namespace std; int k,ret; stack s; int main() { cin >> k; for (int i = 0; i > op; if (op == 0) { s.pop(); } else { s.push(op); } } while (s.size()) { ret += s.top()..