9093번: 단어 뒤집기
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는
www.acmicpc.net
cin.ignore(); 과 getline(cin,str) + str += '\n'을 해주는 이유
getline을 쓰면 마지막에 입력 받은 시점부터 '\n'을 받을 때 까지 한 줄에 있는 것을 모두 다 입력받아서 str에 넣어줌
그런데 cin.ignore()이 없으면 숫자 뒤에 개행 문자를 입력받게 됨
그래서 cin.ignore()을 해서 이걸 무시할 수 있게 함
#include <iostream>
#include <stack>
#include <string>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int t;
cin >> t;
cin.ignore();
while (t--) {
string str;
getline(cin, str);
str += '\n';
stack<char> s;
for (char ch : str) {
if (ch == ' ' || ch == '\n') {
while (!s.empty()) {
cout << s.top();
s.pop();
}
cout << ch;
} else {
s.push(ch);
}
}
}
return 0;
}
'Algorithm > C++' 카테고리의 다른 글
[백준 5635번] 생일 (0) | 2022.04.09 |
---|---|
[백준 9012] 괄호 (0) | 2022.04.08 |
[프로그래머스 lv2] 피보나치 수 (0) | 2022.03.30 |
[이코테 2021] 음료수 얼려먹기 / DFS (0) | 2021.09.29 |
[프로그래머스 C++] 위장 / 해시 , map (0) | 2021.09.21 |
댓글