[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;
}
결과
Leave a comment