문제

문제 링크
image

나의 풀이

아이디어

만약 is_suffix기 my_string에 포함되어있다면, 부분 문자열이 있는 가장 마지막 인덱스 + is_suffix의 길이가 my_string의 길이와 같을 경우 접미사가 된다.

코드

function solution(my_string, is_suffix) {
    return my_string.lastIndexOf(is_suffix) !== -1 ? 
        +(my_string.lastIndexOf(is_suffix) + is_suffix.length === my_string.length) 
        : 0;
}

다른 사람 풀이

function solution(my_string, is_suffix) {
    return my_string.slice(my_string.length - is_suffix.length) === is_suffix ? 1 : 0
}

my_string을 is_suffix만큼 잘라서 비교한 풀이.
훨씬 간결하고 가독성이 좋은 코드같다.

const solution = (str, suff) => str.endsWith(suff) ? 1 : 0

접두사인지 확인하기 문제에서 startsWith 메서드를 처음 봤었는데, endsWith 함수도 있었다…

알게 된 것

String.prototype.endsWith()

어떤 문자열이 특정 문자열로 끝나는지 여부를 Boolean 값으로 반환하는 메서드.

str.endsWith(searchString[, length])

총 2개의 인자를 받는다.

  • searchString : 문자열 내에서 찾아야 할 타겟 문자열
  • length : 생략 가능. (생략시 기본값은 문자열 전체 길이) 탐색을 진행할 문자열의 길이값. 즉 탐색을 진행할 문자열 내의 범위가 된다. length는 문자열 전체 길이 내여야 한다.

레퍼런스