[프로그래머스 / C++] 문자열 여러 번 뒤집기

YH·2023년 12월 5일
0

문제

문자열 여러 번 뒤집기 : 문제 링크


문제 분석

  • 문자열 my_string과 이차원 정수 배열 queries가 매개변수로 주어진다. queries의 원소는 [s, e] 형태로, my_string의 인덱스 s부터 인덱스 e까지를 뒤집으라는 의미이다. my_stringqueries의 명령을 순서대로 처리한 후의 문자열을 return
  • 문자열을 뒤집을 때 사용하는 reverse() 함수를 사용하기 위해 algorithm 헤더를 include. for loop를 통해 queries의 첫번째부터 마지막 원소까지 순환하고, reverse() 함수를 통해 my_string의 인덱스 s(my_string.begin() + queries[i][0])부터 인덱스 e(my_string.begin() + queries[i][1] + 1)까지를 뒤집음. loop 탈출 후, 최종적을 저장된 문자열 my_string을 return

algorithm 헤더의 reverse() 함수 사용법
1. 배열
reverse(a, a+5); => a 배열의 처음부터 다섯번째 요소까지 뒤집음
2. 문자열, 벡터
1) reverse(str.begin(), str.end()); => 문자열 str의 처음부터 끝까지 뒤집음
2) reverse(v.begin()+1, v.end()-1); => 벡터 v의 두번째부터 마지막 이전 요소까지 뒤집음


풀이

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

string solution(string my_string, vector<vector<int>> queries) {
    for(int i = 0; i < queries.size(); ++i) {
        reverse(my_string.begin() + queries[i][0], my_string.begin() + queries[i][1] + 1);
    }
    return my_string;
}
profile
Keep Recycling Your Dreams

0개의 댓글