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

YH·2023년 11월 26일
0

문제

글자 지우기 : 문제 링크


문제 분석

  • 문자열 my_string과 정수 배열 indices가 주어질 때, my_string에서 indices의 원소에 해당하는 인덱스의 글자를 지우고 이어 붙인 문자열을 return
  • find 함수를 사용하여 indices 배열내에 해당 인덱스 번호가 존재하는지 확인해야 하므로 algorithm 헤더를 include. 이어 붙인 문자열을 저장할 문자열 answer을 초기화.
  • for loop를 통해 my_string의 첫번째부터 마지막까지 순환. if문과 find() 함수를 사용하여 인덱스 i가 indices내에 존재하는지 확인하고, 존재하지 않는다면 answer에 문자를 저장. 최종적으로 저장된 answer을 return

1. vector내에 해당 원소가 존재하는지 확인
=> find(v.begin(), v.end(), 찾을 대상)
1) return 값이 v.end()인 경우 => 해당 원소가 존재하지 않음
2) return 값이 v.end()가 아닌 경우 => 해당 원소가 존재함
2. vector내에서 해당 원소가 위치하는 인덱스 찾기
=> find(v.begin(), v.end(), 찾을 대상) - v.begin


풀이

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

using namespace std;

string solution(string my_string, vector<int> indices) {
    string answer = "";
    
    for(int i = 0; i < my_string.size(); ++i) {
        if(find(indices.begin(), indices.end(), i) == indices.end()) answer += my_string[i];
    }
    return answer;
}
profile
Keep Recycling Your Dreams

0개의 댓글