문제
문장이 주어졌을 때, 단어를 모두 뒤집어서 출력하는 프로그램을 작성하시오. 단, 단어의 순서는 바꿀 수 없다. 단어는 영어 알파벳으로만 이루어져 있다.
입력
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 공백이 하나 있다.
출력
각 테스트 케이스에 대해서, 입력으로 주어진 문장의 단어를 모두 뒤집어 출력한다.
풀이
getline 함수를 통하여, string에 한 줄 씩을 입력받았다.
그 후, string을 한 글자씩 살펴보면서 ' '가 아니라면 temp에 더해주었고, ' '가 나온 경우에는 temp를 거꾸로 출력해주었다.
마지막 단어는 ' '가 없으므로 출력을 한 번 더 해주면 된다.
코드
더보기
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
int test_case;
cin >> test_case;
getchar();
for (int t = 0; t < test_case; t++) {
string temp;
getline(cin, str);
for (int i = 0; i < str.length(); i++) {
if (str[i] != ' ')
temp.push_back(str[i]);
else {
for (int j = temp.length() - 1; j >= 0; j--)
printf("%c", temp[j]);
printf(" ");
temp.clear();
}
}
for (int j = temp.length() - 1; j >= 0; j--)
printf("%c", temp[j]);
printf("\n");
}
return 0;
}
'Old > 백준' 카테고리의 다른 글
백준 17219번 비밀번호 찾기 // C++ (0) | 2020.03.03 |
---|---|
백준 17626번 Four Squares // C++ (0) | 2020.03.03 |
백준 6588번 골드바흐의 추측 // C++ (0) | 2020.02.26 |
백준 9613번 GCD 합 // C++ (0) | 2020.02.26 |
백준 1934번 최소공배수 // C++ (0) | 2020.02.26 |