한 걸음씩

[프로그래머스][JS] 문자열 겹쳐쓰기 본문

Programmers

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

winter17 2023. 5. 12. 21:49

https://school.programmers.co.kr/learn/courses/30/lessons/181943

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

풀이 과정1

function solution(my_string, overwrite_string, s) {
    const strArr = [...my_string]
    // ['H', 'e', '1', '1','o', 'W', 'o', 'r','1', 'd']
    // s번 인덱스에 overwrite_string.length길이만큼 제거하고 overwrite_string를 추가
    strArr.splice(s, overwrite_string.length, overwrite_string)
    // [ 'H', 'e', 'lloWorl', 'd' ]
    // console.log(strArr.join('')) ->	HelloWorld
    return strArr.join('');
}

 

테스트 케이스 하나가 계속 통과가 안 돼서 결국 못 풀고 찾아봤는데

문자열을 배열로 변경하고 splice 메서드를 사용하는 방법을 쓰고

다시 문자열로 바꿔줬다

 

풀이 과정2

function solution(my_string, overwrite_string, s) {
    var answer = '';
    // my_string~s + overwrite_string + myString
    const firstIdx = my_string.slice(0, s) + overwrite_string
    const firstIdxLength = firstIdx.length
    if (firstIdxLength < my_string.length){
        const x = my_string.slice(my_string.length - (my_string.length - firstIdxLength))
        answer = firstIdx + x
        return answer
        // console.log(answer)
    }
    return firstIdx;
}

리뷰

정답 코드를 보면 별게 아닌데 틀린 코드를 버리기가 아까워서 비슷한 메서드로 바꿔서 사용하다 보니

배열로 바꿔서 풀어볼 생각을 못한 것 같다