-
프로그래머스 | 문자열 겹쳐쓰기 JS코딩/코딩테스트 2024. 2. 5. 23:01
문제 설명
문자열 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의 길이
입출력 예 설명입출력 예 #1
- 예제 1번의 my_string에서 인덱스 2부터 overwrite_string의 길이만큼에 해당하는 부분은 "11oWor1"이고 이를 "lloWorl"로 바꾼 "HelloWorld"를 return 합니다.
입출력 예 #2
- 예제 2번의 my_string에서 인덱스 7부터 overwrite_string의 길이만큼에 해당하는 부분은 "29b8UYP"이고 이를 "merS123"로 바꾼 "ProgrammerS123"를 return 합니다.
💡나의 풀이
1. splice를 이용한 풀이법
splice() 메서드는 배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 배열의 내용을 변경한다.
function solution(my_string, overwrite_string, s) { const myStr = [...my_string] myStr.splice(s, overwrite_string.length, overwrite_string) return myStr.join("") }
2. replace 를 이용한 풀이법 (틀린답 )
replace는 교체할 문자가 여러개있어도 첫번째 값만 교체됨.
replaceAll 은 값이 모두 교체됨.
그래서 하나의 값만 교체하기 위해 replace를 사용했으나
overwrite_string 이 여러번 등장할 경우 첫번째 값만 교체되기 때문에.. 테스트 6번 케이스에는 중복된 값이 들어있고 뒤에 나오는 중복값을 교체해야 하는 테스트케이스라서 통과하지 못한 것 같다.
function solution(my_string, overwrite_string, s) { const answer = my_string.substring(s, s + overwrite_string.length); return my_string.replace(answer,overwrite_string); }
'코딩 > 코딩테스트' 카테고리의 다른 글
프로그래머스 | 특수문자 출력하기 (0) 2024.02.04 프로그래머스 | 대소문자 바꿔서 출력하기 JS (0) 2024.02.04 프로그래머스 | 문자열 반복해서 출력하기 (0) 2024.02.03 프로그래머스 | n의 배수 고르기 (1) 2024.02.03 프로그래머스 코딩테스트 | 나이 출력 (0) 2023.04.13