개발/알고리즘
백준 17413 실버 3 ) 단어 뒤집기 2
차가운콩
2024. 9. 19. 10:26
해당 문제를 푸는 방법은 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;
}