컴굥일지
[BOJ/백준 9093][C++] 단어 뒤집기 본문
반응형
백준 9093 단어 뒤집기
문제 링크
https://www.acmicpc.net/problem/9093
문제 내용
문장을 입력받아, 각각의 단어를 뒤집어 출력하면 된다.
문제 풀이
getline()을 이용해서 '\n'이 나올 때까지 입력받고, 그 후에 처리를 한다. 공백이 나올 때까지 문자를 스택에 넣고, 공백이 들어오면 스택에 있는 것을 하나씩 꺼내서 출력하면 된다.
코드
#include <iostream>
#include<stack>
#include <string>
using namespace std;
int main() {
ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
int case_num;
cin >> case_num;
string str;
stack <char> st;
cin.ignore(); //버퍼 비우기
while (case_num--) {
getline(cin, str);
str += ' '; //연산의 편의를 위해 마지막에 공백
for (int i = 0; i < str.size(); i++) {
if (str[i] == ' ') { //공백일 때
while (!st.empty()) { //스택에 있는 내용을 전부 출력
cout << st.top();
st.pop();
}cout << ' ';
}
else { //문자일 때
st.push(str[i]); //스택에 추가
}
}cout << endl;
}
return 0;
}
느낀점
C++ 이전에 자바를 선택해서 알고리즘 문제를 풀었어서 그런지 문자열 관련 문제를 풀 때에 조금 어려웠다. 자바의 split()함수가 그립다...
반응형
'알고리즘 > 코테 문제' 카테고리의 다른 글
[BOJ/백준 1931][C++] 회의실 배정 (0) | 2022.01.03 |
---|---|
[BOJ/백준 2346][C++] 풍선 터뜨리기 (0) | 2021.07.11 |
[BOJ/백준 2993][C++] 세 부분 (0) | 2021.07.11 |
[BOJ/백준 1008][C++] A/B (0) | 2021.07.11 |
[BOJ/백준 1547][C++] 공 (0) | 2021.07.11 |
Comments