-
[백준 9093] 단어 뒤집기 (cpp, stack)알고리즘/백준 2021. 12. 12. 16:13
🚀 들어가며...
- 백준 9093번 문제 풀이다.
- 단순한 구현 문제 (stack)
🔗 문제
https://www.acmicpc.net/problem/9093
9093번: 단어 뒤집기
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는
www.acmicpc.net
💌 소스코드
1. ' ' 혹은 '\n' 인 경우
- 스택 전체 pop
2. 그 외의 경우
- 스택에 push
2. getline 사용
- 입력 버퍼의 차이에 유의하여, 한번 비워준다.
#include <iostream> #include <stack> #include <string> using namespace std; int main(void){ int n; cin >> n; // getline과 cin을 함께 사용. // cin은 개행문자 변수에 담지 않음 -> 입력버퍼에 남아서, 이후 getline에 영향을 준다. cin.ignore(); while(n--){ stack<char> st; string str = ""; getline(cin, str); str += ' '; for(int i=0; i<str.size(); i++){ if(str[i] == ' '){ while(!st.empty()){ cout << st.top(); st.pop(); } cout << str[i]; } else{ st.push(str[i]); } } } }
🙋🏻♂️ 후기
간만의 cpp에 getline과 cin의 입력버퍼 처리를 까먹고 있어서
자꾸 틀려서 약간 해매였다.
회복 중.
반응형'알고리즘 > 백준' 카테고리의 다른 글
[백준 1874] 스택 수열 (cpp, stack) (0) 2021.12.19 [백준 9012] 괄호 (cpp, stack) (0) 2021.12.12 [백준 10828] 스택 (cpp, stack) (0) 2021.12.12 [백준 1764] 듣보잡 (0) 2019.05.17