๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm ๐Ÿง‘๐Ÿป‍๐Ÿ’ป/๋ฐฑ์ค€(BOJ)

[๋ฐฑ์ค€,c++] 1935๋ฒˆ - ํ›„์œ„ ํ‘œ๊ธฐ์‹2

by ์•ˆ์ฃผํ˜• 2022. 3. 10.

๋ฌธ์ œ

 

1935๋ฒˆ: ํ›„์œ„ ํ‘œ๊ธฐ์‹2

์ฒซ์งธ ์ค„์— ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐœ์ˆ˜(1 ≤ N ≤ 26) ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‘˜์งธ ์ค„์—๋Š” ํ›„์œ„ ํ‘œ๊ธฐ์‹์ด ์ฃผ์–ด์ง„๋‹ค. (์—ฌ๊ธฐ์„œ ํ”ผ์—ฐ์‚ฐ์ž๋Š” A~Z์˜ ์˜๋Œ€๋ฌธ์ž์ด๋ฉฐ, A๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ N๊ฐœ์˜ ์˜๋Œ€๋ฌธ์ž๋งŒ์ด ์‚ฌ์šฉ๋˜๋ฉฐ, ๊ธธ์ด

www.acmicpc.net

 

์ฝ”๋“œ

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

int arr[26];

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    
    int N; cin>>N;
    string cmd; cin>>cmd;
    
    stack<double>st;
    for(int i=0; i<N; i++) cin>>arr[i];
    
    for(int i=0; i<cmd.length(); i++){
        if(cmd[i]=='*'){
            double num1 = st.top();
            st.pop();
            double num2 = st.top();
            st.pop();
            st.push(num2*num1);
        }
        else if(cmd[i]=='+'){
            double num1 = st.top();
            st.pop();
            double num2 = st.top();
            st.pop();
            st.push(num2+num1);
        }
        else if(cmd[i]=='/'){
            double num1 = st.top();
            st.pop();
            double num2 = st.top();
            st.pop();
            st.push(num2/num1);
        }
        else if(cmd[i]=='-'){
            double num1 = st.top();
            st.pop();
            double num2 = st.top();
            st.pop();
            st.push(num2-num1);
        }
        else st.push(arr[cmd[i]-65]);
    }
    
    cout<<fixed;
    cout.precision(2);
    cout<<st.top();
    
}

 

ํ’€์ด

์ฝ”๋“œ ๊ตฌํ˜„ ์„ค๊ณ„๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ์•ŒํŒŒ๋ฒณ์ด๋ฉด stack์— ์ €์žฅํ•œ๋‹ค.
  2. ์—ฐ์‚ฐ์ด๋ฉด ๊ณ„์‚ฐํ•œ๋‹ค.

์ฒ˜์Œ์— ํ›„์œ„ํ‘œ๊ธฐ์‹์ด ๋ฌด์—‡์ด์ง€ ๋ชฐ๋ผ์„œ ํ•ด๋‹น ํ‘œ๊ธฐ์˜ ์˜๋ฏธ์— ๋Œ€ํ•ด ์•„๋ž˜์˜ ๋ธ”๋กœ๊ทธ๋ฅผ ์ฝ๊ณ  ์ดํ•ดํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

ํ›„์œ„ํ‘œ๊ธฐ์‹ ๋ณ€ํ™˜

์•ˆ๋…•ํ•˜์„ธ์š” :) ์˜ค๋Š˜์€ ์‚ฌ๋žŒ๋“ค์ด ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ค‘์œ„ํ‘œ๊ธฐ์‹(infix)์„ ํ›„์œ„ํ‘œ๊ธฐ์‹(postfix)์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ›„์œ„ํ‘œ๊ธฐ์‹? ๋จผ์ € ์ค‘์œ„ํ‘œ๊ธฐ์‹๊ณผ ํ›„์œ„ํ‘œ๊ธฐ์‹์— ๋Œ€ํ•ด ์•Œ์•„

woongsios.tistory.com

 

๋Œ“๊ธ€