본문 바로가기
Study (etc)/Problem Solving

[BOJ / C++] 12605번 : 단어순서 뒤집기

by Haren 2023. 3. 24.

문제

스페이스로 띄어쓰기 된 단어들의 리스트가 주어질때, 단어들을 반대 순서로 뒤집어라. 각 라인은 w개의 영단어로 이루어져 있으며, 총 L개의 알파벳을 가진다. 각 행은 알파벳과 스페이스로만 이루어져 있다. 단어 사이에는 하나의 스페이스만 들어간다.

입력

첫 행은 N이며, 전체 케이스의 개수이다.

N개의 케이스들이 이어지는데, 각 케이스는 스페이스로 띄어진 단어들이다. 스페이스는 라인의 처음과 끝에는 나타나지 않는다. N과 L은 다음 범위를 가진다.

  • N = 5
  • 1 ≤ L ≤ 25

출력

각 케이스에 대해서, 케이스 번호가 x일때  "Case #x: " 를 출력한 후 그 후에 이어서 단어들을 반대 순서로 출력한다.

Solved.ac

브론즈 I

풀이

#include <bits/stdc++.h>

using namespace std;

int main(){
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int n;
    cin >> n;
    cin.ignore();

    for(int i = 1; i <= n; i++) {
        string input;
        stack<string> st;

        getline(cin, input);
        input += ' ';

        string tmp = "";
        for(int j = 0; j < input.length(); j++) {
            
            if(input[j] != ' ') {
                tmp += input[j];
            } else {
                tmp += " ";
                st.push(tmp);
                tmp = "";
            }
        }

        cout << "Case #" << i << ": ";
        while(!st.empty()) {
            cout << st.top();
            st.pop();
        }
        cout << "\n";

    }

    return 0;
}

 

 

12605번: 단어순서 뒤집기

스페이스로 띄어쓰기 된 단어들의 리스트가 주어질때, 단어들을 반대 순서로 뒤집어라. 각 라인은 w개의 영단어로 이루어져 있으며, 총 L개의 알파벳을 가진다. 각 행은 알파벳과 스페이스로만

www.acmicpc.net