π¦₯ μ½ν
/BAEKJOON
[BAEKJOON C++] 10828_μ€ν
μ§μ§μνμΉ΄
2023. 7. 28. 00:34
728x90
λ°μν
μ μλ₯Ό μ μ₯νλ μ€νμ ꡬνν λ€μ,
μ λ ₯μΌλ‘ μ£Όμ΄μ§λ λͺ λ Ήμ μ²λ¦¬νλ νλ‘κ·Έλ¨μ μμ±νμμ€.
λͺ λ Ήμ μ΄ λ€μ― κ°μ§μ΄λ€.
push X: μ μ Xλ₯Ό μ€νμ λ£λ μ°μ°μ΄λ€.
pop: μ€νμμ κ°μ₯ μμ μλ μ μλ₯Ό λΉΌκ³ , κ·Έ μλ₯Ό μΆλ ₯νλ€.
λ§μ½ μ€νμ λ€μ΄μλ μ μκ° μλ κ²½μ°μλ -1μ μΆλ ₯νλ€.
size: μ€νμ λ€μ΄μλ μ μμ κ°μλ₯Ό μΆλ ₯νλ€.
empty: μ€νμ΄ λΉμ΄μμΌλ©΄ 1, μλλ©΄ 0μ μΆλ ₯νλ€.
top: μ€νμ κ°μ₯ μμ μλ μ μλ₯Ό μΆλ ₯νλ€.
λ§μ½ μ€νμ λ€μ΄μλ μ μκ° μλ κ²½μ°μλ -1μ μΆλ ₯νλ€.
μ λ ₯
첫째 μ€μ μ£Όμ΄μ§λ λͺ λ Ήμ μ N (1 ≤ N ≤ 10,000)μ΄ μ£Όμ΄μ§λ€.
λμ§Έ μ€λΆν° Nκ°μ μ€μλ λͺ λ Ήμ΄ νλμ© μ£Όμ΄μ§λ€.
μ£Όμ΄μ§λ μ μλ 1λ³΄λ€ ν¬κ±°λ κ°κ³ , 100,000λ³΄λ€ μκ±°λ κ°λ€.
λ¬Έμ μ λμμμ§ μμ λͺ λ Ήμ΄ μ£Όμ΄μ§λ κ²½μ°λ μλ€
μΆλ ₯
μΆλ ₯ν΄μΌνλ λͺ λ Ήμ΄ μ£Όμ΄μ§ λλ§λ€, ν μ€μ νλμ© μΆλ ₯νλ€.
// [1026] 보물
/*
μ μλ₯Ό μ μ₯νλ μ€νμ ꡬνν λ€μ,
μ
λ ₯μΌλ‘ μ£Όμ΄μ§λ λͺ
λ Ήμ μ²λ¦¬νλ νλ‘κ·Έλ¨μ μμ±νμμ€.
λͺ
λ Ήμ μ΄ λ€μ― κ°μ§μ΄λ€.
push X: μ μ Xλ₯Ό μ€νμ λ£λ μ°μ°μ΄λ€.
pop: μ€νμμ κ°μ₯ μμ μλ μ μλ₯Ό λΉΌκ³ , κ·Έ μλ₯Ό μΆλ ₯νλ€.
λ§μ½ μ€νμ λ€μ΄μλ μ μκ° μλ κ²½μ°μλ -1μ μΆλ ₯νλ€.
size: μ€νμ λ€μ΄μλ μ μμ κ°μλ₯Ό μΆλ ₯νλ€.
empty: μ€νμ΄ λΉμ΄μμΌλ©΄ 1, μλλ©΄ 0μ μΆλ ₯νλ€.
top: μ€νμ κ°μ₯ μμ μλ μ μλ₯Ό μΆλ ₯νλ€.
λ§μ½ μ€νμ λ€μ΄μλ μ μκ° μλ κ²½μ°μλ -1μ μΆλ ₯νλ€.
μ
λ ₯
첫째 μ€μ μ£Όμ΄μ§λ λͺ
λ Ήμ μ N (1 ≤ N ≤ 10,000)μ΄ μ£Όμ΄μ§λ€.
λμ§Έ μ€λΆν° Nκ°μ μ€μλ λͺ
λ Ήμ΄ νλμ© μ£Όμ΄μ§λ€.
μ£Όμ΄μ§λ μ μλ 1λ³΄λ€ ν¬κ±°λ κ°κ³ , 100,000λ³΄λ€ μκ±°λ κ°λ€.
λ¬Έμ μ λμμμ§ μμ λͺ
λ Ήμ΄ μ£Όμ΄μ§λ κ²½μ°λ μλ€
μΆλ ₯
μΆλ ₯ν΄μΌνλ λͺ
λ Ήμ΄ μ£Όμ΄μ§ λλ§λ€, ν μ€μ νλμ© μΆλ ₯νλ€.
*/
#define _CRT_SECURE_NO_WARNINGS
// νμ€ μ€νΈλ¦Όμμ μ½κΈ° λ° μ°κΈ°λ₯Ό μ μ΄νλ κ°μ²΄λ₯Ό μ μΈ
#include <iostream>
#include <algorithm> // find
#include <string>
#include <cmath> // abs
#include <vector>
using namespace std;
// μ€ν ν΄λμ€ μμ±
class Stack {
public:
int stack[10000]; // μ€νμ νλμ λ°°μ΄
// size: μ€νμ λ€μ΄μλ μ μμ κ°μλ₯Ό μΆλ ₯νλ€.
int size;
Stack() { size = 0; }
// push X : μ μ Xλ₯Ό μ€νμ λ£λ μ°μ°μ΄λ€.
void push(int data) {
stack[size] = data;
size += 1;
}
// empty: μ€νμ΄ λΉμ΄μμΌλ©΄ 1, μλλ©΄ 0μ μΆλ ₯νλ€.
bool empty() {
if (size == 0)
{
return true;
}
else
{
return false;
}
}
// pop: μ€νμμ κ°μ₯ μμ μλ μ μλ₯Ό λΉΌκ³ , κ·Έ μλ₯Ό μΆλ ₯νλ€.
// λ§μ½ μ€νμ λ€μ΄μλ μ μκ° μλ κ²½μ°μλ - 1μ μΆλ ₯νλ€.
int pop() {
if (empty())
{
return -1;
}
else
{
stack[size - 1] = 0;
size -= 1;
return stack[size];
}
}
// top : μ€νμ κ°μ₯ μμ μλ μ μλ₯Ό μΆλ ₯νλ€.
// λ§μ½ μ€νμ λ€μ΄μλ μ μκ° μλ κ²½μ°μλ - 1μ μΆλ ₯νλ€.
int top() {
if (empty())
{
return -1;
}
else
{
return stack[size - 1];
}
}
};
int main() {
// μ£Όμ΄μ§λ λͺ
λ Ήμ μ N
int N;
cin >> N;
Stack st;
for (int i = 0; i < N; i++)
{
string cmd;
// push, pop, empty, size, top μ€ μ
λ ₯λ°μ
cin >> cmd;
if (cmd == "push")
{
int data;
cin >> data;
st.push(data);
}
else if (cmd == "pop")
{
// μ€νμ λ€μ΄μλ μ μκ° μλ κ²½μ°μλ -1
cout << (st.empty() ? -1 : st.top()) << '\n';
if (!st.empty())
{
st.pop();
}
}
else if (cmd == "size")
{
cout << st.size << '\n';
}
else if (cmd == "empty")
{
cout << st.empty() << '\n';
}
else if (cmd == "top")
{
cout << st.top() << '\n';
}
}
return 0;
}
728x90
λ°μν