[백준/C++] 9093번_단어뒤집기

이수진·2021년 12월 21일
0

백준

목록 보기
1/2

여름방학부터 기말전까지 스터디로 쭉 알고리즘 문제를 풀었었는데, 이제 종강하고 다시 시작했다.
그 전까지는 leetcode를 이용해 풀었는데, 이젠 나도 백준을 풀어야할 때까 온 것 같다고 느꼈다.
초급-중급-고급? 뭐 이런 순으로 있던데 아직 내 실력이 어느정도인지 잘 모르겠지만, 초급부터 얼른 후다닥 풀어야겠다!

문제참고

내 코드는 다음과 같다.

#include <iostream>
#include <stack>
using namespace std;

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);

    int test_case;
    string arr;
    stack<char> s;

    cin>>test_case;
    cin.ignore();

    for(int i=0; i<test_case; i++){
        getline(cin, arr);
        
        for(int j=0; arr[j]; j++){
            while(arr[j]!=' ' && arr[j]!='\0'){
                s.push(arr[j++]);
            }
            while(!s.empty()){
                cout<<s.top();
                s.pop();
            }
            cout<<" ";
            if(arr[j]=='\0') break;
        }
        cout<<"\n";
    }
}

주의: cin이후에 getline으로 받기전에 입력버퍼에 있는 '\n' 없앨것!

그래서 getline으로 받기 이전에, cin.ignore(); 를 이용하였다.

profile
꾸준히, 열심히, 그리고 잘하자

0개의 댓글