전체 코드는 가장 하단에 있습니다 ~

어렵지 않은 문제다
내가 벌써 브론즈 문제를 쉽게 푸는 여자가 되었다니 ... 감격스럽다 .
후입선출 구조인 스택을 이용한다면 쉽게 해결할 수 있다
살짝 까다롭다고 느꼈던건 문자열 입력 때문이었다
대부분 입력시 사용하는 cin 은 공백 기준으로 끊기기 때문에 공백이 포함된 긴 문장 하나를 입력 받을때는 사용하기에 부적절하다
그럼 뭘 쓰지 ...?

string getline
string 라이브러리에 속해 있으므로 #include <string> 이 필요
첫번째 인자 - 입력 스트립 객체, cin 을 넣어 표준 입력으로 사용
두번째 인자 - string 변수의 시작점
세번째 인자 - 제한자 or 구분 문자
cin.ignore();
getline(cin, str, '\n');
.ignore() 은 cin 으로 입력 받은 후 버퍼에 남아있는 \n 을 지워주는 것
전체 코드
#include <iostream>
#include <stack>
#include <string>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(nullptr);
int T;
cin >> T;
cin.ignore();
for (int i = 0; i < T; i++) {
string str;
stack<char> stk;
getline(cin, str, '\n');
int j = 0;
while (str[j]) {
if (str[j] != ' ') {
stk.push(str[j]);
}
else {
while (!stk.empty()) {
cout << stk.top();
stk.pop();
}
cout << " ";
}
j++;
}
while (!stk.empty()) {
cout << stk.top();
stk.pop();
}
cout << " ";
cout << "\n";
}
}'PS' 카테고리의 다른 글
| [PS] (백준 1080번) 행렬 C++ (0) | 2024.05.22 |
|---|---|
| [PS] (백준 10815번) 숫자카드 C++ map (0) | 2024.05.13 |
| [PS] (백준 2840번) 행운의 바퀴 C++ (0) | 2024.05.08 |