[C++] 프로그래머스 글자 지우기

문제설명

문자열 my_string과 정수 배열 indices가 주어질 때,
my_string에서 indices의 원소에 해당하는 인덱스의 글자를 지우고
이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.


제한사항

• 1 ≤ indices의 길이 < my_string의 길이 ≤ 100
• my_string은 영소문자로만 이루어져 있습니다
• 0 ≤ indices의 원소 < my_string의 길이
• indices의 원소는 모두 서로 다릅니다.


입출력 예

my_string indices result
“apporoograpemmemprs” [1, 16, 6, 15, 0, 10, 11, 3] “programmers”


풀이

my_string 문자열에서 indices에 있는 인덱스 문자를 지우고 이어붙인 문자열을 return하는 구현 문제입니다.

sort 함수를 이용하여 순서대로 문자를 지우도록 로직을 구현하였습니다.

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

using namespace std;

string solution(string my_string, vector<int> indices) {
    string answer = my_string;
    
    vector<int> s_indices = indices;
    
    sort(s_indices.begin(), s_indices.end());
    
    for(int i = 0; i < s_indices.size(); i++)
    {
        answer.erase(answer.begin() + s_indices[i] - i);
    }
    
    return answer;
}


결과

코드 실행결과

Categories:

Updated:

Leave a comment