본문 바로가기
Develop/백준 (Cpp)

[백준] 5363번 : 요다 (C++)

by Tarra 2023. 2. 5.

10984번: 내 학점을 구해줘


문제 )

어린 제다이들은 요다와 대화하는 법을 배워야 한다. 요다는 모든 문장에서 가장 앞 단어 두 개를 제일 마지막에 말한다.

어떤 문장이 주어졌을 때, 요다의 말로 바꾸는 프로그램을 작성하시오.

 

 

입력 :

첫째 줄에 문장의 수 N이 주어진다. 둘째 줄부터 N개의 줄에는 각 문장이 주어진다. 문장의 길이는 100글자 이내이다. 단어의 개수는 3개 이상이다.

 

 

 

출력 :

각 문장을 요다의 말로 바꾼 뒤 출력한다.

 

 

 

 

 

풀이)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include <string>
#include <deque>
 
using namespace std;
 
int main()
{
    int n;
    cin >> n;
    // 버퍼에 쌓인 \n등을 제거
    cin.ignore();
 
    for (int i = 0; i < n; i++) {
        string sentence;
        // 한줄 모두 입력 받기
        getline(cin, sentence);
        
        deque<string> d;
 
        //  string stream 쓰지 않고 수작업으로 분리
        string temp = "";
        for (int j = 0; j < sentence.length() + 1; j++) {
            if (sentence.substr(j, 1== " " || j == sentence.length()) {
                d.push_back(temp);
                temp = "";
            }
            else {
                temp += sentence.substr(j, 1);
            }
        }
 
        // deque를 이용하여 앞에서 빼서 뒤로 넣어줌
        d.push_back(d.front());
        d.pop_front();
        d.push_back(d.front());
        d.pop_front();
 
        for (auto& ele : d) {
            cout << ele << " ";
        }
 
        if(i != n - 1cout << "\n";
    }
 
    return 0;
}
 
cs

출처 : https://www.acmicpc.net/problem/5363 

 

5363번: 요다

첫째 줄에 문장의 수 N이 주어진다. 둘째 줄부터 N개의 줄에는 각 문장이 주어진다. 문장의 길이는 100글자 이내이다. 단어의 개수는 3개 이상이다.

www.acmicpc.net