2023. 7. 24. 17:22ㆍStudy_Develop/알고리즘 | 코딩테스트
프로그래머스 - 문자열 겹쳐쓰기 - js
문제
문자열 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 합니다.
solution.js
function solution(my_string, overwrite_string, s) {
const myStr = [...my_string]
myStr.splice(s, overwrite_string.length, overwrite_string)
return myStr.join("")
}
해설
- my_string을 문자의 배열로 변환
- 인덱스 s 에서 시작하는 부분 문자열을 overwrite_string으로 대체 ( .length의 길이에 해당하는 만큼)
- 수정된 배열을 다시 문자열로 결합하고 반환
splice()
splice()를 사용해 배열 요소 제거하고 새로 추가하기란?
splice는 요소를 삭제하는 동시에 바로 새 요소를 추가할 수 있다!
// 필수 매개변수와 선택적 매개변수가 포함된 splice() 문법
Array.splice(start, deleteCount, newItem, newItem, newItem, ...)
let months = ["January", "February", "Monday", "Tuesday"];
let days = months.splice(2, 2, "March", "April"); // 요소 두 개를 제외하고, 다른 요소를 추가
console.log(days); // ["Monday", "Tuesday"]
console.log(months); // ["January", "February", "March", "April"]
- > months배열에 March와 April을 추가하면서 Monday와 Tuesday를 제거하는 방법
요소를 제거하지 않고 새 배열 요소 추가하기
let months = ["January", "February", "Monday", "Tuesday"];
months.splice(2, 0, "March"); // 두 번째 매개변수가 0이므로 기존 요소 모두 유지
console.log(months);
// ["January", "February", "March", "Monday", "Tuesday"]
-> 마지막으로 숫자 0을 deleteCount 매개변수에 전달하여 기존 요소를 삭제하지 않고도 새 요소를 추가할 수 있다. 요소가 제거되지 않을 경우 빈 배열이 반환되며, 경우에 따라 반환된 빈 배열을 변수에 저장해서 사용할 수 있다.
다음 예시에서는 기존 요소를 삭제하지 않고 "February" 요소 옆에 새 요소 "March"를 추가하는 것을 보여준다. 앞서 언급한 것처럼 반환되는 값이 빈 배열이므로 이를 별도로 저장하지 않아도 된다.
'Study_Develop > 알고리즘 | 코딩테스트' 카테고리의 다른 글
프로그래머스 - 문자 리스트를 문자열로 변환하기 - js (join함수) (1) | 2023.07.24 |
---|---|
프로그래머스 - 문자열 섞기 - js (js map() 메소드) (1) | 2023.07.24 |
프로그래머스 - 홀짝 구분하기 - js (JavaScript ` ` (백틱기호)) (0) | 2023.07.24 |
프로그래머스 - 문자열 돌리기 - js (forEach문, for ... of 루프) (1) | 2023.07.24 |
프로그래머스 - 문자열 붙여서 출력하기 - js (0) | 2023.07.23 |