๋ฌธ์
์ฝ๋
#include <iostream>
#include <stack>
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
string s, ans; cin>>s;
stack<char>st;
for(char c: s){
if(c=='(') st.push(c);
else if(c==')'){
while(st.top()!='('){
cout<<st.top();
st.pop();
}
st.pop();
}
else if(c =='*'|| c =='/' || c =='+' || c=='-'){
if(c=='*'|| c=='/'){
while(!st.empty() && (st.top()=='*' || st.top() == '/')){
cout<<st.top();
st.pop();
}
st.push(c);
}
else{
while(!st.empty() && st.top()!='('){
cout<<st.top();
st.pop();
}
st.push(c);
}
}
else cout<<c;
}
while(!st.empty()){
if(st.top()!='(') cout<<st.top();
st.pop();
}
}
ํ์ด
์ ํ๊ธฐ ํ๊ธฐ์2๊ฐ ํ์ ํ๊ธฐ์์ ๊ธฐ์ค์ผ๋ก ๊ฐ์ ๊ณ์ฐํ๋ ๋ฌธ์ ์๋ค๋ฉด ์ด ๋ฌธ์ ๋ ์ค์ ํ๊ธฐ์์ ํ์ ํ๊ธฐ์์ผ๋ก ๋ง๋๋ ๋ฌธ์ ์ ๋๋ค.
์ ๋ฌธ์ ์ ํ์ด ์์ด๋์ด๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๊ดํธ ํน์ ์ฐ์ฐ์๊ฐ ์๋ ์ํ๋ฒณ์ผ ๊ฒฝ์ฐ ๋ฐ๋ก ์ถ๋ ฅํ๋ค.
- ์ฌ๋ ๊ดํธ์ผ ๊ฒฝ์ฐ ์คํ์ ์ถ๊ฐํ๋ค.
- ๋ซ๋ ๊ดํธ์ผ ๊ฒฝ์ฐ ์ฌ๋ ๊ดํธ๊ฐ ๋์ฌ ๋๊น์ง ์คํ์ ์๋ ๊ฐ์ ์ฐจ๋ก๋๋ก ์ ๋ถ ์ถ๋ ฅํ๋ค.
- ์ฐ์ฐ์์ผ ๋ ์ฐ์ ์์๊ฐ ๋์ * ํน์ / ์ธ ๊ฒฝ์ฐ ์คํ์ ๋ ๋ค๋ฅธ ์ฐ์ ์์๊ฐ ๋์ ์ฐ์ฐ์์ธ * ํน์ / ๊ฐ ๋์ฌ ๋๊น์ง ์คํ์ ์๋ ๊ฐ์ ์ ๋ถ ์ถ๋ ฅํ๋ค.
- ์ฐ์ฐ์์ผ ๋ ์๋์ ์ผ๋ก ์ฐ์ ์์๊ฐ ๋ฎ์ + ํน์ - ์ผ ๊ฒฝ์ฐ ์คํ์ ๊ฐ์ด ์ฌ๋ ๊ดํธ๊ฐ ์๋ ๋๊น์ง ์ ๋ถ ์ถ๋ ฅํ๋ค.
- ๋ง์ง๋ง์ผ๋ก ์คํ์ ๋จ์์๋ ๊ฐ๋ค์ด ์์ ์ ์๊ธฐ ๋๋ฌธ์ ์คํ์ ๊ฐ์ ์ ๋ถ ์ถ๋ ฅํ๋ค.
ํ๋ฒ (A + B * C ) - D / E ๋ฅผ ์ ๋ ฅ์ผ๋ก ์๋ฅผ ๋ค์ด๋ณด๊ฒ ์ต๋๋ค. ์ถ๋ ฅ์ผ๋ก๋ ABC*+DE/- ๊ฐ ๋์์ผ ํ ๊ฒ์ ๋๋ค.
'Algorithm ๐ง๐ปโ๐ป > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค,c++] 5430๋ฒ - AC (0) | 2022.06.19 |
---|---|
[๋ฐฑ์ค,c++] 18115๋ฒ - ์นด๋ ๋๊ธฐ (0) | 2022.06.19 |
[๋ฐฑ์ค,c++] 5397๋ฒ - ํค๋ก๊ฑฐ (0) | 2022.06.03 |
[๋ฐฑ์ค,c++] 2493๋ฒ - ํ (0) | 2022.06.03 |
[๋ฐฑ์ค,c++] 2800๋ฒ - ๊ดํธ ์ ๊ฑฐ (0) | 2022.06.03 |
[๋ฐฑ์ค,c++] 17141๋ฒ - ์ฐ๊ตฌ์ 2 (0) | 2022.05.27 |
๋๊ธ