[LeetCode] Reverse Prefix of Word

준규·2022년 10월 19일
0

인덱스가 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을 해보니

정답이었다!

profile
안녕하세요 :)

0개의 댓글