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

[프로그래머스] 부분 문자열 이어 붙여 문자열 만들기(c++)

by ilp 2023. 12. 25.
반응형


#include <string>
#include <vector>

using namespace std;

string solution(vector<string> my_strings, vector<vector<int>> parts) {
    string answer = "";
    for(int i=0;i<my_strings.size();i++){
        answer+=my_strings[i].substr(parts[i][0],parts[i][1]-parts[i][0]+1);
    }
    return answer;
}

string answer을 만들어준다.

my_strings의 크기만큼 for문을 돌려준다.

answer에 mystrings[i]번쨰 ㅁ누자열에서 parts[i][0]번째부터 parts[i][1]까지 문자열을 더해준다.

자세히 설명하자면

substr을 사용한 것이다.

str.substr(a,b);

 

이런 형태로 사용하는 것인데

문자열 str에서 a부터 b만큼의 값을 반환해준다.

예를들어

문자열(str)
a
b
반환하는 값
programming
5
3
amm

이렇게 문자열에서 a번쨰 문자부터 3개를 반환해준다.

그리고

substr(parts[i][0],parts[i][1]-parts[i][0]+1);

이렇게 표현한 이유는 parts에 값은 반환해야할 부분의 위를 알려주기 때문에

뒷부붑ㄴ을 parts[i][1]으로 쓰면 안된다.

그래서

나중 위치에서 처음 위치를 빼고 1을 더해서

parts[i][0]부터 parts[i][1]의 까지문자를 반환할수 있게 하였다.

참고

아래 문제어서도 substr을 사용했다.

https://iloveprogramming.tistory.com/77

 

[프로그래머스] 문자열의 뒤의 n글자(c++)

https://school.programmers.co.kr/learn/courses/30/lessons/181910 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞

iloveprogramming.tistory.com


반응형