Image

Lv.0 🔗문자열 겹쳐쓰기

📝문제 요약

문제 설명

문자열 my_stringoverwrite_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 합니다.


✏️문제 풀이

  1. 입력 처리

    function solution(my_string, overwrite_string, s) {}
    
    • my_string: 원본 문자열
    • overwrite_string: 덮어쓸 문자열
    • s: 덮어쓰기 시작 위치
  2. 문자열을 배열로 변환

    var answer = [...my_string];
    
    • 문자열은 불변(immutable)이기 때문에 배열로 변환
    • [...] 전개 연산자를 사용하여 문자열을 문자 배열로 바꿈
  3. 문자열 덮어쓰기

    answer.splice(s, overwrite_string.length, overwrite_string);
    
    • splice(시작위치, 제거할 개수, 삽입할 내용)
    • s부터 overwrite_string.length만큼 제거하고, overwrite_string을 삽입
  4. 배열을 다시 문자열로 합침

    return answer.join("");
    
    • 문자 배열을 문자열로 변환해서 반환


💯제출 코드

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

댓글남기기