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 - 1) cout << "\n";
}
return 0;
}
|
cs |
'Develop > 백준 (Cpp)' 카테고리의 다른 글
[백준] 5585번 : 거스름돈 (C++) (0) | 2023.02.06 |
---|---|
[백준] 1100번 : 하얀 칸 (C++) (0) | 2023.02.05 |
[백준] 2712번 : 미국 스타일 (C++) (0) | 2023.02.05 |
[백준] 1026번 : 보물 (C++) (0) | 2023.02.05 |
[백준] 3049번 : 다각형의 대각선 (C++) (0) | 2023.02.05 |