프로그래머스 - 문자열 여러 번 뒤집기 - C++
프로그래머스 문자열 여러 번 뒤집기 문제 바로가기 reverse() function vector나 string에 대해서 reverse()함수를 이용하면 특정 부분을 거꾸로 만들 수 있다. vector<int> nums = {1, 2, 3, 4, 5}; reverse.(nums.begin(), nums.end()); cout << nums << endl; // (5, 4, 3, 2, 1) reverse.(nums.begin(), nums.begin()+3); // 1~3번째 원소에 대해서만 reverse cout << nums << endl; // (3, 4, 5, 2, 1) 이 함수를 이용해 풀면 다음과 같다. #include <string> #include <vector> #include <algorithm> using namespace std; string solution(string my_string, vector<vector<int>> queries) { for (vector<int> q: queries){ reverse(my_string.begin()+q[0], my_string.begin()+q[1]+1); } return my_string; } 여담 - Python과의 비교 python의 경우 slicing을 이용해서 arr[i:j+1] = arr[j:i-1:-1]만 해도 해결 가능한데 C++은 조금 귀찮긴 하다… 그나마 reverse() function이 있어서 일일히 부분 복사해서 붙여넣기 안해도 되니까 다행인듯!! ...