![[백준 C++] 1874 : 스택 수열](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbPX0gr%2FbtsK3fFgps4%2FaosM6sVxXokkmG4OGA7JjK%2Fimg.png)
https://www.acmicpc.net/problem/1874문제의 설명을 바로 이해하지 못했는데 간단하게 말하면 다음과 같다.1부터 입력된 N까지 수를 스택에 넣을건데, 2번째 줄부터 입력된 수부터 차례대로 POP해서 스택에 모든 값들이 빠지는 지 확인하는 것이다.#include #include #include using namespace std;int main(){ vector ans; stack stack; int N; int value = 1; bool clear = true; cin >> N; for (int i = 0; i > input; while (value 어차피 NO가 뜰 경우는 입력된 수가 이전에 들어가서 스택의 TOP값이 입력값보다 높은 경우밖에 없다.그러므로 입력을 하나씩..
![[백준 C++] 10773 : 제로](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVkIFI%2FbtsK0j8lNjS%2FG8tFQgWcueey2KHcpzZbp0%2Fimg.png)
https://www.acmicpc.net/problem/10773최근에 쓴 수를 지운다는 점에서 바로 스택을 떠올렸다.이전 게시글에서 올렸던 4949번 균형잡힌 세상이랑 비슷한 문제라고 생각한다.#include #include using namespace std;int main(){ stack stack; int K, ans = 0; cin >> K; for (int i = 0; i > temp; if (temp == 0) stack.pop(); else stack.push(temp); } while (!stack.empty()) { ans += stack.top(); stack.pop(); } cout 정수가 0일 때 지울 수 있는 숫자가 보장됨에 따라 예외는 적지 않았다.
![[백준 C++] 4949 : 균형잡힌 세상](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBjfTi%2FbtsKZ71viT4%2FynF6bJSkIcxSyclZ6s9BkK%2Fimg.png)
https://www.acmicpc.net/problem/4949괄호라는 문제가 나오면 필자는 스택이 바로 떠오른다.그래서 바로 스택으로 구현하였다.#include #include #include using namespace std;int main(){ string str = " "; while (true) { bool correct = true; stack stack; getline(cin, str); if (str.compare(".") == 0) break; for (int i = 0; i cin의 getline이 아닌 string의 getline을 사용하였다.시작 괄호 ( '(', '[' )는 판별의 의미가 없기 때문에 바로 스택에 집어넣었고, 닫는 괄호 ( ')', ']' )를 확인..
자료구조의 스택에 대해 알아보자. 스택 스택은 쌓아놓은 더미를 뜻한다. 쌓여져 있는 데이터를 한 쪽에서만 넣고 뺄 수 있는 선형 구조로 되어 있다. LIFO(Last in First out), FILO(First in Last out)의 순서를 따라간다. 특징 데이터를 받는 순서대로 정렬해서 저장한다. LIFO는 맨 위, 즉 마지막으로 삽입된 데이터를 먼저 사용한다. FIFO는 맨 아래, 즉 먼저 삽입된 순서대로 데이터를 사용한다. 시간복잡도 접근(Access) : 쌓여져있는 순서대로 접근할 수 있기 때문에 O(n)의 시간 복잡도를 가진다. 삽입(insert) 및 삭제(delete) : 가장 위에 삽입하거나 삭제할 수 밖에 없기 때문에 O(1)의 시간 복잡도가 발생한다. 검색(search) : 접근과 마..