본문 바로가기
알고리즘 스터디/[프로그래머스] 코딩테스트 공부

[JS] 문자열 겹쳐쓰기

by 제니운 2024. 1. 9.
728x90

 

 

 

안녕하세요. 제니입니다!

프로그래머스로 코딩 테스트를 연습하면서, 꾸준하게 문제를 풀어보고 있었는데

 

 

 

 

출처: 프로그래머스

 

 

 

화면 오른쪽에 이런 캘린더가 있더라구요!

어떤 걸 풀어야지 고민할 필요없이 주어진 Day를 할 수 있어서 편했고

꾸준하게 매일 5개를 풀 수 있을 것 같아서 해당 캘린더로 시작하기로 했습니다!

 

 

 

그 중 오늘은 문자열 겹쳐쓰기 부분에 대해 정리가 필요해보였어요.

 

 

 

1-1. 문제

 

 

 

출처: 프로그래머스

 

 

 

결국, s부터 시작해서 overwrite_string 글자로 덮어 씌우는 문제인데,

여러 가지를 고민하면서 풀었거든요.

그런데 또 다른 풀이를 참고하면서 보니, 제가 자주 사용하던 splice() 문법을 사용해서 풀더라구요!

저랑 가장 적합한 방법인 것 같아서, 정리하려고 합니다.

왜 맨날 사용하던 문법을 잊어버리는가..!

사실 개발을 하면서는 바로바로 생각이 나는데 테스트를 할 때는 멈칫하게 되네요..ㅎㅎ

 

 

 

1-2. splice()

 

 

 

splice(1, 4, test)

 

 

 

splice 문법의 경우 위 처럼 사용하게 되면

배열의 1번 인덱스부터 4번 인덱스 이전까지 test로 바꿀 수 있게 됩니다.

 

 

 

이 방법을 일단 적용하기 전에, my_string을 배열로 바꿔주면

 

 

 

function solution(my_string, overwrite_string, s){
	const arr = [...my_string]
}

 

 

 

 

이렇게 사용할 수 있습니다.

그럼 이 배열을 splice를 통해서 수정해주면

 

 

 

function solution(my_string, overwrite_string, s){
	const arr = [...my_string];
    arr.splice(s, overwrite_string.length, overwrite_string);
    return arr;
}

 

 

 

 

이렇게 해주면 결과가 어떻게 나올까요?

 

 

 

출처: 프로그래머스

 

 

 

바로 이렇게, 하나하나 출력이 되기 떄문에, 여기서 join 을 해줄 수 있습니다.

" " 로 join을 해주게 되면 주어진 보기처럼 적용할 수 있어서

 

 

 

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

 

 

 

최종적으로 위와 같은 코드가 됩니다!

splice(), join()을 잊지 않기!

 

 

 

 

 

728x90

'알고리즘 스터디 > [프로그래머스] 코딩테스트 공부' 카테고리의 다른 글

[JS] 뒤에서 5등까지  (4) 2024.01.07
[JS] 문자열 곱하기  (0) 2024.01.02
[JS] 대문자로 바꾸기  (1) 2024.01.02
[JS] 문자열의 뒤의 n글자  (1) 2024.01.02
[JS] 정수 부분  (0) 2024.01.01