[C++] 프로그래머스 문자열 겹쳐쓰기

문제설명

문자열 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의 길이


입출력 예

my_string overwrite_string s result
“He11oWor1d” “lloWorl” 2 “HelloWorld”
“Program29b8UYP” “merS123” 7 “ProgrammerS123”


입출력 설명

입출력 예 #1

  • 예제 1번의 my_string에서 인덱스 2부터 overwrite_string의 길이만큼에 해당하는 부분은 “11oWor1”이고 이를 “lloWorl”로 바꾼 “HelloWorld”를 return 합니다.


입출력 예 #2

  • 예제 2번의 my_string에서 인덱스 7부터 overwrite_string의 길이만큼에 해당하는 부분은 “29b8UYP”이고 이를 “merS123”로 바꾼 “ProgrammerS123”를 return 합니다.


풀이

해당 인덱스부터 overwrite_string을 대입하는 로직을 구현하여 문제를 풀었습니다.

#include <string>
#include <vector>

using namespace std;

string solution(string my_string, string overwrite_string, int s) {
    string answer = "";
    string ms = my_string;
    string os = overwrite_string;
    
    int j = 0;

    for (int i = s; j < os.length(); i++)
    {
        ms[i] = os[j];
        j++;
    }
    
    answer = ms;
    
    return answer;
}


결과

코드 실행결과

Categories:

Updated:

Leave a comment