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

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

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

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

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

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

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

Frontend-Deep-Dive

[BOJ] ๋ฐฑ์ค€ 1918 ํ›„์œ„ ํ‘œ๊ธฐ์‹ / ์Šคํƒ(Stack)
Problem_Solving

[BOJ] ๋ฐฑ์ค€ 1918 ํ›„์œ„ ํ‘œ๊ธฐ์‹ / ์Šคํƒ(Stack)

2020. 7. 18. 22:57


 

 

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

 

 

ํ›„์œ„ ํ‘œ๊ธฐ๋ฒ•(postfix)์€ ์—ฐ์‚ฐ์ž๊ฐ€ ํ”ผ์—ฐ์‚ฐ์ž ๋’ค์— ์œ„์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด a+b*c๋ฅผ ํ›„์œ„ ํ‘œ๊ธฐ์‹์œผ๋กœ ๋ฐ”๊พธ๋ฉด abc*+๊ฐ€ ๋œ๋‹ค.

์ค‘์œ„ ํ‘œ๊ธฐ์‹์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ํ›„์œ„ ํ‘œ๊ธฐ์‹์œผ๋กœ ๊ณ ์น˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•œ๋‹ค.

 

์Šคํƒ(Stack)์„ ํ™œ์šฉํ•˜์—ฌ ํ’€์ดํ–ˆ๋‹ค.

 

 

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

 

 

C++ Stack ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ์ค‘์œ„ ํ‘œ๊ธฐ๋ฒ•์„ ๊ตฌํ˜„ํ•˜์˜€๋‹ค.

 

 

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

 

#include <iostream>
#include <stack>
using namespace std;

int main() {
    string expression = "";
    stack<char> s1;
    
    cin >> expression;
    
    for (int i = 0; i < expression.length(); ++i) {
        if (expression[i] >= 60) {
            // ํ”ผ์—ฐ์‚ฐ์ž ์ถœ๋ ฅ(๋ชจ๋“  ๋ฌธ์ž ์ˆซ์ž๋Š” ASCII ์ฝ”๋“œ๋กœ 60 ์ด์ƒ์ž„)
            cout << expression[i];
        }else {
            if (expression[i] == '*' || expression[i] == '/') {
                if (!s1.empty()) {
                    if (s1.top() == '*' || s1.top() == '/') {
                        cout << s1.top();
                        s1.pop();
                    }
                }
                s1.push(expression[i]);
            }else if (expression[i] == '+' || expression[i] == '-') {
                if (s1.empty()) {
                    s1.push(expression[i]);
                }else {
                    while (!s1.empty()) {
                        if (s1.top() == '(')    break;
                        cout << s1.top();
                        s1.pop();
                    }
                    s1.push(expression[i]);
                }
            }else if (expression[i] == '(') {
                s1.push(expression[i]);
            }else if (expression[i] == ')') {
                while (s1.top() != '(') {
                    cout << s1.top();
                    s1.pop();
                }
                s1.pop();
            }else {
                cout << "๋ญ”๊ฐ€ ์ž˜๋ชป ์ฝ์–ด์™”์Šˆ!!!" << endl;
                exit(1);
            }
        }
    }
    
    while (!s1.empty()) {
        cout << s1.top();
        s1.pop();
    }
}

 

 

โ—๏ธ "*" ๋˜๋Š” "/" ์—ฐ์‚ฐ์ž์˜ ๊ฒฝ์šฐ

      1) ์Šคํƒ์ด ๋น„์–ด์žˆ์ง€ ์•Š๋‹ค๋ฉด, ์Šคํƒ์˜ top์ด "*"์™€ "/"์ธ ๊ฒฝ์šฐ ๋™์ผํ•œ ์šฐ์„ ์ˆœ์œ„์ด๋ฏ€๋กœ pop ์‹œํ‚จ๋‹ค.

      2) ์ƒˆ๋กœ ์ฝ์–ด์˜จ ์—ฐ์‚ฐ์ž๋ฅผ push ํ•œ๋‹ค.

โ—๏ธ "+" ๋˜๋Š” "-" ์—ฐ์‚ฐ์ž์˜ ๊ฒฝ์šฐ

      1) ์Šคํƒ์ด ๋น„์–ด์žˆ๋‹ค๋ฉด ๊ทธ๋ƒฅ push ํ•œ๋‹ค.

      2) ๋น„์–ด์žˆ์ง€ ์•Š๋‹ค๋ฉด, ์Šคํƒ์ด ๋น„์›Œ์ง€๊ฑฐ๋‚˜ ์—ฌ๋Š” ๊ด„ํ˜ธ("(")๋ฅผ ๋งŒ๋‚  ๋•Œ๊นŒ์ง€ pop ํ•œ๋‹ค. ๊ทธ ํ›„ ์ƒˆ๋กœ ์ฝ์–ด์˜จ ์—ฐ์‚ฐ์ž๋ฅผ push ํ•œ๋‹ค.

 

โ—๏ธ "(" ๋˜๋Š” ")"์˜ ๊ฒฝ์šฐ

      1) "("์˜ ๊ฒฝ์šฐ ๋ฌด์กฐ๊ฑด push ํ•œ๋‹ค.

      2) ")"์˜ ๊ฒฝ์šฐ ์—ฌ๋Š” ๊ด„ํ˜ธ("(")๋ฅผ ๋งŒ๋‚  ๋•Œ๊นŒ์ง€ pop ํ•œ๋‹ค. ์ดํ›„ ์—ฌ๋Š” ๊ด„ํ˜ธ ์—ญ์‹œ pop ํ•œ๋‹ค.

 

 

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

 

 

์ž๋ฃŒ๊ตฌ์กฐ ์ˆ˜์—…์‹œ๊ฐ„์— ์Šคํƒ์„ ๋ฐฐ์šฐ๋ฉด์„œ ๊ณผ์ œ๋กœ ์ˆ˜ํ–‰ํ–ˆ๋˜ ์ค‘์œ„ ํ‘œ๊ธฐ์‹ -> ํ›„์œ„ ํ‘œ๊ธฐ์‹ ๋ณ€ํ™˜์„ ๊ตฌํ˜„ํ•˜๋Š” ๋‚ด์šฉ์ด์—ˆ๋‹ค.

์—ญ์‹œ ์˜ค๋žœ๋งŒ์— ๋ณต์Šตํ•˜๋ฉฐ ๋‹ค์‹œ ๋‚ด์šฉ์„ ์ƒ๊ธฐํ•  ์ˆ˜ ์žˆ์–ด ์œ ์ตํ–ˆ๋‹ค.

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

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

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

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