[BOJ] 백준 9093 단어 뒤집기
이 문제는 string의 reverse 등을 이용해 풀 수 있지만,
제일먼저 생각이 났던건 STACK을 이용하는 것이었다.
어차피 역순으로 출력하는 것 이므로 자료구조인 스택을 쓰는것이 더 유익하겠다는 판단으로 풀게 되었다.
빈칸을 만나면, 스택의 원소를 모두 pop, 그리고 빈칸이 아닌경우 push 하는 간단한 알고리즘이다.
소스코드 :
#include#include #include using namespace std; int main() { int n; cin >> n; cin.ignore(); while (n--) { string s; getline(cin, s); int len = s.length(); stack v; for (int i = 0; i < len; i++) { if (s[i] == ' ') { while (!v.empty()) { cout << v.top(); v.pop(); } cout << ' '; } else { v.push(s[i]); } } while (!v.empty()) { cout << v.top(); v.pop(); } cout << '\n'; } }
댓글
댓글 쓰기