문자열 겹쳐쓰기

도비김·2024년 2월 22일
0
문제 설명

문자열 my_string, overwrite_string과 정수 s가 주어집니다. 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.


제한사항
  • my_stringoverwrite_string은 숫자와 알파벳으로 이루어져 있습니다.
  • 1 ≤ overwrite_string의 길이 ≤ my_string의 길이 ≤ 1,000
  • 0 ≤ smy_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 합니다.

solution

function solution(my_string, overwrite_string, s) {
    let answer = [];
    answer = my_string.split("");
    answer.splice(s, overwrite_string.length, overwrite_string);
    return answer.join("");
}

str=[]my_string을 받고 answer=[]에다 str.splice()을 받으려 했는데 오류가 난다;; 뭐가 잘못된거지

splice()는 제거하는 용도라 answer=[]로 받으면 제거하는걸 받게 된다. 유의할것!

다른풀이

return my_string.slice(0,s)+overwrite_string+my_string.slice(s+overwrite_string.length);

const answer = my_string.split('');
answer.splice(s, overwrite_string.length,overwrite_string);
return answer.join('');

let result = "";
for (let i = 0; i < my_string.length; i++) {
	if (i >= s && i < s + overwrite_string.length) {
	  result += overwrite_string[i - s];
    } else {
      result += my_string[i];
	}
}
return result;
profile
To Infinity, and Beyond!

0개의 댓글