2023. 9. 20. 00:11 자기개발/코딩테스트
C++ (코딩테스트) - 스텍(백준)
문제
https://www.acmicpc.net/problem/10828
내 코드
#include <string>
#include <iostream>
using namespace std;
struct Node
{
Node* prev = nullptr;
int value;
Node(int val)
{
this->value = val;
}
};
class Stack
{
private:
Node* start = nullptr;
Node* end = nullptr;
int size = 0;
public:
void Push(int val)
{
Node* newNode = new Node(val);
if (start == nullptr)
{
start = end = newNode;
}
else
{
newNode->prev = end;
end = newNode;
}
size++;
}
int Pop()
{
if (size > 0)
{
int value = end->value;
Node* temp = end->prev;
end = nullptr;
delete end;
end = temp;
size--;
return value;
}
return -1;
}
int Size()
{
return size;
}
int Empty()
{
if (size == 0) { return 1; }
return 0;
}
int Top()
{
if (size > 0) { return end->value; }
return -1;
}
};
int main(void) {
int N;
Stack myS;
string command;
int val;
cin >> N;
for (int i = 0; i < N; i++)
{
cin >> command;
if (command == "push")
{
cin >> val;
myS.Push(val);
}
else if (command == "pop")
{
cout << myS.Pop() << endl;
}
else if (command == "size")
{
cout << myS.Size() << endl;
}
else if (command == "empty")
{
cout << myS.Empty() << endl;
}
else if (command == "top")
{
cout << myS.Top() << endl;
}
}
return 0;
}
큐 풀면서 스텍도 비슷해서 같이 풀어봄
'자기개발 > 코딩테스트' 카테고리의 다른 글
| C++ (코딩테스트) - 넷이 놀기(백준) (0) | 2023.09.22 |
|---|---|
| C++ (코딩테스트) - 코코넛 그 두 번째 이야기(백준) (0) | 2023.09.22 |
| C++ (코딩테스트) - 큐(백준) (0) | 2023.09.19 |
| C++ (코딩테스트) - 회의실 배정(백준) (0) | 2023.09.19 |
| C++ (코딩테스트) - 숫자 카드 나누기(프로그래머스) (0) | 2022.12.29 |