glowing713
Frontend-Deep-Dive
glowing713
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (97)
    • Languages (11)
      • JavaScript ๐Ÿ’› (3)
      • Python ๐Ÿ (4)
      • Java โ˜•๏ธ (3)
      • Swift ๐Ÿงก (1)
    • Computer_Science (1)
      • Computer_Network ๐Ÿ•ธ (1)
    • Web_Frontend (4)
      • Vue.js (1)
    • Problem_Solving (76)
    • Server (1)
      • Spring ๐Ÿ€ (1)
    • AI (2)
      • NLP ๐Ÿ—ฃ (1)
      • AI_Math โž— (1)
    • ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊พธ๋ฏธ๊ธฐ โœŒ (1)
    • ์ƒ๊ฐ์ •๋ฆฌ โœ๐Ÿป (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๐Ÿง‘๐Ÿปโ€๐Ÿ’ปGithub

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • boostcampaitech
  • mst
  • bfs
  • ์นด์นด์˜ค ๊ธฐ์ถœ
  • Algorithm
  • binary search
  • c++
  • Python
  • Stack
  • Baekjoon
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
  • brute-force
  • ์ด๋ถ„ํƒ์ƒ‰
  • ps
  • Java
  • ์™„์ „ํƒ์ƒ‰
  • BOJ
  • ๋™์ ๊ณ„ํš๋ฒ•
  • 2019 ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ๊ฒจ์šธ ์ธํ„ด์‹ญ
  • DP

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
glowing713

Frontend-Deep-Dive

[BOJ] ๋ฐฑ์ค€ 10828 ์Šคํƒ / ์Šคํƒ(Stack)
Problem_Solving

[BOJ] ๋ฐฑ์ค€ 10828 ์Šคํƒ / ์Šคํƒ(Stack)

2020. 7. 17. 16:55


 

 

๐Ÿ’ฃ ๋ฌธ์ œ ์ดํ•ด

 

 

์ •์ˆ˜๋ฅผ ์ €์žฅํ•˜๋Š” ์Šคํƒ์„ ๊ตฌํ˜„ํ•œ ๋‹ค์Œ, ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ๋ช…๋ น์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•œ๋‹ค.

๋ช…๋ น์€ push, pop, top, size, empty๋กœ ์ด ๋‹ค์„ฏ ๊ฐ€์ง€์ด๋‹ค.

 

 

์Šคํƒ(Stack) ๋‹จ์ˆœ ๊ตฌํ˜„ ๋ฌธ์ œ์ด๋‹ค.

 

 

๐Ÿ’ญ ํ’€์ด ๊ณผ์ •

 

 

C++ template์„ ํ™œ์šฉํ•˜์—ฌ Linked-List๋กœ ์Šคํƒ์„ ๊ตฌํ˜„ํ•˜์˜€๋‹ค.

 

 

์ž‘์„ฑ ์–ธ์–ด: C++

 

#include <iostream>
using namespace std;

template <typename T>
class Node {
public:
    T value;
    Node<T> *next;
    
    Node<T>(): next(nullptr){}
    Node<T>(T tValue, Node<T> *tNext): value(tValue), next(tNext){}
};

template <typename T>
class Stack {
public:
    int size;
    Node<T> *head;
    
    Stack<T>(): size(0), head(nullptr){}
    ~Stack<T>() {
        while (head != nullptr) {
            Node<T> *temp = head->next;
            delete head;
            head = temp;
        }
    }
    
    void Push (T value) {
        head = new Node<T>(value, head);
        size += 1;
    }
    
    void Pop () {
        if (size != 0) {
            cout << head->value << endl;
            Node<T> *temp = head->next;
            delete head;
            head = temp;
            
            size -= 1;
        }else {
            cout << "-1" << endl;
        }
    }
    
    void Size () {
        cout << this->size << endl;
    }
    
    void empty() {
        int result = size == 0 ? 1 : 0;
        cout << result << endl;
    }
    
    void top() {
        if (size != 0) {
            cout << head->value << endl;
        }else {
            cout << "-1" << endl;
        }
    }
};


int main() {
    Stack<int> stack;
    int orderCnt = 0, num = 0;
    string order = "";
    
    cin >> orderCnt;
    
    while (orderCnt--) {
        cin >> order;
        
        if (order == "push") {
            cin >> num;
            stack.Push(num);
        }else if (order == "pop") {
            stack.Pop();
        }else if (order == "size") {
            stack.Size();
        }else if (order == "empty") {
            stack.empty();
        }else if (order == "top") {
            stack.top();
        }else {
            cout << "์—ฅ ์ด์ƒํ•œ ๋ช…๋ น์–ด์ธ๋ฐ??" << endl;
            exit(1);
        }
    }
}

 

Linked-List๋ฅผ ํ™œ์šฉํ•˜์—ฌ Stack์„ ๊ตฌํ˜„ํ•˜์˜€๋‹ค.

 

๋ฆฌ์ŠคํŠธ์˜ ๊ฐ ๋…ธ๋“œ๋Š” ์ž๋ฃŒํ˜• Tํ˜• value์™€ ๋‹ค์Œ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” Node ํ˜• ํฌ์ธํ„ฐ next๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค.

 

Stack ํด๋ž˜์Šค์˜ ๊ฐ ํ•จ์ˆ˜์˜ ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

  • void Push (T value): value ๊ฐ’์„ ์Šคํƒ์— ๋„ฃ๋Š” ์—ฐ์‚ฐ์ด๋‹ค.
  • void Pop (): ์Šคํƒ์—์„œ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ์ •์ˆ˜๋ฅผ ๋นผ๊ณ , ๊ทธ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์•ฝ ์Šคํƒ์— ๋“ค์–ด์žˆ๋Š” ์ •์ˆ˜๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” -1์„ ์ถœ๋ ฅํ•œ๋‹ค.
  • void Size (): ์Šคํƒ์— ๋“ค์–ด์žˆ๋Š” ์ •์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
  • void empty (): ์Šคํƒ์ด ๋น„์–ด์žˆ์œผ๋ฉด 1, ์•„๋‹ˆ๋ฉด 0์„ ์ถœ๋ ฅํ•œ๋‹ค.
  • void top (): ์Šคํƒ์˜ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ์ •์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์•ฝ ์Šคํƒ์— ๋“ค์–ด์žˆ๋Š” ์ •์ˆ˜๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” -1์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

 

๐Ÿ† ๋ฐฐ์šด ์ 

 

 

์ด๋ก ์œผ๋กœ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์— ๋”ํ•˜์—ฌ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๋Š” ์—ฐ์Šต์˜ ์ค‘์š”์„ฑ์„ ์ƒˆ์‚ผ ๋А๋ผ๊ฒŒ ๋˜์—ˆ๋‹ค.

๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ๋กœ ์ง์ ‘ ๊ตฌํ˜„ํ•ด๋ณด๋ฉด์„œ ์ž๋ฃŒ๊ตฌ์กฐ ์ˆ˜์—…์— ๋ฐฐ์šฐ๊ณ  ๊ตฌํ˜„ํ–ˆ๋˜ ๋‚ด์šฉ์ด ๋ณต์Šต์ด ๋˜์–ด ์œ ์ตํ•œ ํ’€์ด์˜€๋‹ค.

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Problem_Solving' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[BOJ] ๋ฐฑ์ค€ 1935 ํ›„์œ„ ํ‘œ๊ธฐ์‹2 / ์Šคํƒ(Stack)  (0) 2020.07.27
[BOJ] ๋ฐฑ์ค€ 1918 ํ›„์œ„ ํ‘œ๊ธฐ์‹ / ์Šคํƒ(Stack)  (0) 2020.07.18
[2019 ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ๊ฒจ์šธ ์ธํ„ด์‹ญ] ๋ถˆ๋Ÿ‰ ์‚ฌ์šฉ์ž  (0) 2020.05.01
[2019 ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ๊ฒจ์šธ ์ธํ„ด์‹ญ] ํŠœํ”Œ  (0) 2020.05.01
[2019 ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ๊ฒจ์šธ ์ธํ„ด์‹ญ] ํฌ๋ ˆ์ธ ์ธํ˜•๋ฝ‘๊ธฐ ๊ฒŒ์ž„  (0) 2020.05.01
    'Problem_Solving' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [BOJ] ๋ฐฑ์ค€ 1935 ํ›„์œ„ ํ‘œ๊ธฐ์‹2 / ์Šคํƒ(Stack)
    • [BOJ] ๋ฐฑ์ค€ 1918 ํ›„์œ„ ํ‘œ๊ธฐ์‹ / ์Šคํƒ(Stack)
    • [2019 ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ๊ฒจ์šธ ์ธํ„ด์‹ญ] ๋ถˆ๋Ÿ‰ ์‚ฌ์šฉ์ž
    • [2019 ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ๊ฒจ์šธ ์ธํ„ด์‹ญ] ํŠœํ”Œ
    glowing713
    glowing713

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”