*문제 출처는 프로그래머스에 있습니다.
문제 제목: 문자열 겹쳐쓰기 (0단계)
문제 사이트: https://school.programmers.co.kr/learn/courses/30/lessons/120817
문제 설명
문자열 my_string, overwrite_string과 정수 s가 주어집니다. 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.
제한 사항
- my_string와 overwrite_string은 숫자와 알파벳으로 이루어져 있습니다.
- 1 ≤ overwrite_string의 길이 ≤ my_string의 길이 ≤ 1,000
- 0 ≤ s ≤ my_string의 길이 - overwrite_string의 길이
입출력 예
입출력 예 설명
나의 풀이
#include <string>
#include <vector>
using namespace std;
string solution(string my_string, string overwrite_string, int s) {
vector<char> gr;
string answer = "";
// 1. 문자열 인덱스까지 vector push_back 삽입
for (int i = 0; i < s; i++) {
gr.push_back(my_string[i]);
}
// 2. 바뀐 문자열을 삽입
for (int j = 0; j < overwrite_string.size(); j++) {
gr.push_back(overwrite_string[j]);
}
// 3. 기존 문자열 이후 문자를 추가 삽입
for (int k = overwrite_string.size() + s; k < my_string.size(); k++) {
gr.push_back(my_string[k]);
}
// 4. 벡터에 있는 값을 문자열로 변환
for (int l = 0; l < gr.size(); l++) {
answer += gr[l];
}
// 5. 반환
return answer;
}
※ 알아야 할 것
push_back를 하면 vector의 뒤에서부터 넣을 수 있다.
※ 아쉬운 점
특정 문자를 찾아서 replace를 했다면 더 빠르게 해결할 수 있었을 것 같다.
'코딩테스트(프로그래머스 & 백준) > 프로그래머스-C++' 카테고리의 다른 글
Programmers / 연속된 수의 합 / C++ (1) | 2024.01.11 |
---|---|
Programmers / 잘라서 배열로 저장하기 / C++ (0) | 2024.01.11 |
Programmers / 옹알이 (1) / C++ (1) | 2024.01.03 |
Programmers / 문자열안에 문자열 / C++ (1) | 2024.01.02 |
Programmers / 최댓값 만들기(1) / C++ (0) | 2024.01.02 |