안녕하세요. 제니입니다!
프로그래머스로 코딩 테스트를 연습하면서, 꾸준하게 문제를 풀어보고 있었는데
화면 오른쪽에 이런 캘린더가 있더라구요!
어떤 걸 풀어야지 고민할 필요없이 주어진 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()을 잊지 않기!
'알고리즘 스터디 > [프로그래머스] 코딩테스트 공부' 카테고리의 다른 글
[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 |