해당 문제를 푸는 방법은 string 타입의 str이라는 변수를 만들어 geline으로 공백까지 입력을 받습니다.
괄호로 감싸져있는 단어들은 뒤집으면 안됩니다.
해당 단어가 괄호로 감싸어져 있는지를 체크하기 위해서 check 변수를 만들어서 < 라는 문자를 만나면 단어 변수 sub를
출력하고 check++ 와 sub에 "<"로 대입합니다
">" 괄호를 만난다면 sub변수에 있는 값을 출력하고 ""으로 초기화 해줍니다
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
string str;
getline(cin, str);
int check = 0;
string sub = "";
for (int i = 0; i < str.length(); i++) {
if (str[i] == '<') {
reverse(sub.begin(), sub.end());
cout << sub;
check++;
sub = "<";
}
else if (str[i] == '>') {
cout << sub << ">";
sub = "";
check = 0;
}
else if (check == 0 && str[i] == ' ') {
reverse(sub.begin(), sub.end());
cout << sub << " ";
sub = "";
}
else {
sub += str[i];
}
}
if (sub.length() != 0) {
reverse(sub.begin(), sub.end());
cout << sub;
}
return 0;
}
'개발 > 알고리즘' 카테고리의 다른 글
17087 실버 2 ) 숨바꼭질 6 - 유클리드 호제법 (0) | 2024.10.08 |
---|---|
백준 실버 2 ) 10799 쇠막대기 stack (0) | 2024.09.19 |
백준 1874 실버2) 스택 수열 (0) | 2024.09.14 |
백준 실버 5 - 1268) 임시 반장 정하기 - 구현 (0) | 2024.09.04 |
백준 실버 2- 백트래킹 ) 만족도 점수 16501 (2) | 2024.09.02 |