본문 바로가기
c++/프로그래머스

[프로그래머스] 글자 지우기(c++)

by ilp 2023. 12. 25.
반응형
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr



#include <bits/stdc++.h>

using namespace std;

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

 

indices를 내림차순으로 정렬해준다.

(내림차순으로 정렬을 하지 않으면 erase를 잘못 사용하게 된다.

예를 들어

indices가 1,16이면

1번위치를 지우고나서 16번 위치를 지우려고 하면 16번 위치가 아니라 15위치를 지우게 된다.)

indices 의 크기만큼 for문을 돌린다.

erase를 사용해서 indices[i]부분을 지워준다.

참고

내림차순 정렬을 할때 sort함수를 사용했다.

뒤에 greater<int>()를 쓰면 내림차순정렬을 할 수 있다.

sort(시작위치,끝 위치);

 

대충 이런식으로 사용할수 있다.(이 코드는 오름차순 정렬을 해준다.

문자열에서 특정부분을 지울때 erase를 사용했다.

str.erase(0,6);

 

이렇게 사용한다면

문자열 str에서 0번째부터 6개를 업셍준다

str[0]~str[5]까지 없어진다.


반응형