CS/백준 & 프로그래머스
[백준]9093번 단어 뒤집기 c/c++
성장하고픈개발자
2022. 7. 11. 12:43
728x90
728x90
문제
https://www.acmicpc.net/problem/9093
9093번: 단어 뒤집기
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는
www.acmicpc.net
나의 해결방법
- 주석으로 설명하였다.
- 다른 분들의 풀이를 보고 해결책을 얻었다.
#include<iostream>
#include<stack>
#include<string>
using namespace std;
int main()
{
int tc;
cin >> tc; //테스트케이스 개수
cin.ignore(); //버퍼 제거
while (tc--) {
string s = "";
getline(cin, s);
s += ' '; // 마지막 단어 뒤에 공백을 추가해줘야 마지막 단어도 st에 푸쉬해줄 수 있다.
stack<char> st;
for (int i = 0; i < s.size(); i++) {
if (s[i] == ' ') {
while (!st.empty()) {
cout << st.top();
st.pop();
}
cout << s[i]; //공백 출력
}
else
st.push(s[i]); //공백을 만날때까지 push
}
}
}
728x90
728x90