본문 바로가기

개발/알고리즘

백준 17413 실버 3 ) 단어 뒤집기 2

 

 

해당 문제를 푸는 방법은 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;
}