반응형
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
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]까지 없어진다.
끝
반응형
'c++ > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 수열과 구간 쿼리2(c++) (0) | 2023.12.25 |
---|---|
[프로그래머스] 수열과 구간 쿼리 4(c++) (0) | 2023.12.25 |
[프로그래머스] 세로 읽기(c++) (0) | 2023.12.25 |
[프로그래머스] 배열 만들기 3(c++) (0) | 2023.12.25 |
[프로그래머스] 수열과 구간 쿼리 1(c++) (0) | 2023.12.25 |