스택

컴퓨터 공학/자료구조

[자료구조] 스택의 개념, 구현 및 적용 C/C++

📕 스택이란?? 자료구조 스택을 이해하기 위해서는 영어 stack이 무엇인지를 알면 이해가 쉽다. stack은 '무더기', '쌓아놓은 더미' 등을 가리키는 명사의 뜻과 '쌓다'라는 동사의 뜻이 있다. 여기서 우리가 눈여겨봐야 할 것은 '쌓는다'라는 특성이다. 📕 스택의 특징 어떠한 것을 '쌓는' 것이기 때문에 생기는 특성이 있는데, 바로 후입선출(LIFO) 즉, 먼저 들어간 것이 나중에 나오는 특성이다. 간단한 예시로 책 더미를 생각해보자. 책을 위로 점점 쌓고난 후, 맨 밑에 있는 책을 꺼내기 보기 위해서는 그 책위로 쌓여있는 책을 다 빼낸 후에야 가능할 것이다. 반대로, 맨 마지막에 쌓은 책의 경우 가장 위에 있기 때문에 제일 먼저 꺼낼 수 있을 것이다. 그렇기 때문에 후입선출, Last In Fir..

백준 문제풀이

백준 #9012번 괄호 c++

백준 9012번 괄호 문제이다. 실버4의 문제. 스택의 활용 정도 되는 문제이다. 스택의 기본구조인 선입후출의 개념과 stack.empty(), stack.top() 등의 개념을 활용하여 풀 수 있는 문제이다. 이 문제의 핵심은 닫는 괄호 ')' 의 짝이 있는가를 찾는 것이다. 처음부터 닫는 괄호가 들어오면 당연히 NO를 반환해야 하는것이고 닫는 괄호와 여는 괄호의 갯수가 같아도, 짝이 맞지 않으면 해결할 수 없다. 아래의 코드를 살펴보자. #include #include #include using namespace std; int main() { int testcase; cin >> testcase; // 몇 번 돌지 입력받음 while(testcase--) { stack st; string s; ci..

백준 문제풀이

백준 #10828 스택 c++

백준 10828 스택 문제이다. solve.ac에서 제공하는 실버4 문제이다. 문제를 읽어보면 단순히 스택을 구현하라는 문제이다. 물론 이 문제를 어떤 언어로 푸느냐에 따라서 문제 난이도가 천차만별이지만, 대부분의 하이레벨 언어에서는 기본 라이브러리에서 스택을 지원하기 때문에 문제를 푸는 것은 어렵지 않다. 물론 C를 사용해서 풀면, 스택을 다 구현해야 하기 때문에 상당히 복잡하다. 아래는 c++ 코드 전문이다 #include #include #include #include #include using namespace std; // //14 //push 1 //push 2 //top => 2 //size =>2 //empty => 거짓 => 0 //pop => 맨위 => 2 //pop => 맨위 => 1..

후;
'스택' 태그의 글 목록