반응형
728x170
이 문제는 스택에 관한 예외처리를 하는데 도움이 된다.
순서를 잘 생각해야 하는 문제다.
대충 답을 끼워맞춘 느낌이고
코드가 정제되지 않았지만 이런 식으로 푸는 듯 하다.
https://www.acmicpc.net/problem/17413
#맞은 풀이
#include <bits/stdc++.h>
using namespace std;
stack <char> stk;
string s;
int main(){
//띄어쓰기 포함 모든 문자열을 받아야함
getline(cin, s);
bool isTagging = false;
//Tagging 중일 때, 아닐 때
//공백을 만났을 때, 아닐 때
for(char c : s){
if(c == '<'){
while(!stk.empty()){
char w = stk.top();
stk.pop();
cout << w;
}
cout << c;
isTagging = true;
continue;
}else if(c == '>'){
cout << c;
isTagging = false;
continue;
}
if(isTagging){
cout << c;
}
else{
if(c == ' '){
while(!stk.empty()){
char w = stk.top();
stk.pop();
cout << w;
}
cout << c;
}else{
stk.push(c);
}
}
}
//끝났다면 스택 비움
while(!stk.empty()){
char w = stk.top();
stk.pop();
cout << w;
}
return 0;
}
쉽지만 재미있다.
스택의 의미가 꺼낼 때 역순이란 것을 이용한 좋은 문제다.
728x90
반응형
그리드형
'문제풀이(Problem Solving)' 카테고리의 다른 글
백준, BOJ, 1107번, 리모컨 C++ [CPP] ★★★★ (0) | 2022.08.07 |
---|---|
백준, BOJ, 1741번, 괄호제거 C++ [CPP] ★★★★ (0) | 2022.07.31 |
백준, BOJ, 2146번, 다리 만들기 C++ [CPP] ★★★★ (0) | 2022.06.16 |
백준, BOJ, 1245번, 농장 관리 C++ [CPP] ★★★ (0) | 2022.06.16 |
백준, BOJ, 14225번, 부분수열의 합 C++ [CPP] ★★ (0) | 2022.06.14 |