인덱스가 0부터 시작하는 문자열 word가 주어지고 문자 ch가 주어진다고 한다.
이 때 0번 인덱스부터 word 내의 ch와 같은 문자가 최초로 등장하는 인덱스까지의 부분 문자열을 역순으로 배치하여 리턴하는 문제이다.
만약 word 안에 ch 와 같은 문자가 존재하지 않으면 word 를 그래도 리턴하면 된다.
Example을 보자
const reversePrefix = function (word, ch) {
if (word.indexOf(ch) === -1) return word;
let subString = word.slice(0, word.indexOf(ch) + 1);
subString = subString.split("").reverse().join("");
const backWord = word.slice(word.indexOf(ch) + 1, word.length + 1);
return subString + backWord;
};
먼저 indexOf 함수는 문자열 내에 특정 문자가 존재하지 않으면 -1을 리턴하므로 예외 처리를 먼저 해주었다.
문제 조건은 ch가 가장 먼저 나오는 인덱스와 처음 인덱스 사이의 문자열을 뒤집는 것이므로 indexOf 를 이용해 ch와 같은 문자의 인덱스를 얻었다.
그 후 word 에서 부분 문자열을 배열로 바꾼다음 reverse 함수를 이용하여 순서를 뒤집어주고 다시 문자열로 만들어 주었다.
마지막으로 뒤쪽의 원래 부분 문자열과 합하여 리턴해주었다.
submit을 해보니
정답이었다!