🗃️javascript/프로그래머스

접미사인지 확인하기(LV.0)[계속 생각하면 좋은 코드가 나올지도?]

하얀성 2023. 9. 7. 09:11

<문제>

 

어떤 문자열에 대해서 접미사는 특정 인덱스부터 시작하는 문자열을 의미합니다. 예를 들어, "banana"의 모든 접미사는 "banana", "anana", "nana", "ana", "na", "a"입니다.
문자열 my_string과 is_suffix가 주어질 때, is_suffix가 my_string의 접미사라면 1을, 아니면 0을 return 하는 solution 함수를 작성해 주세요.


제한사항
  • 1 ≤ my_string의 길이 ≤ 100
  • 1 ≤ is_suffix의 길이 ≤ 100
  • my_string과 is_suffix는 영소문자로만 이루어져 있습니다.

입출력 예my_stringis_suffixresult
"banana" "ana" 1
"banana" "nan" 0
"banana" "wxyz" 0
"banana" "abanana" 0

입출력 예 설명

입출력 예 #1

  • 예제 1번에서 is_suffix가 my_string의 접미사이기 때문에 1을 return 합니다.

입출력 예 #2

  • 예제 2번에서 is_suffix가 my_string의 접미사가 아니기 때문에 0을 return 합니다.

입출력 예 #3

  • 예제 3번에서 is_suffix가 my_string의 접미사가 아니기 때문에 0을 return 합니다.

입출력 예 #4

  • 예제 4번에서 is_suffix가 my_string의 접미사가 아니기 때문에 0을 return 합니다.

<제출답안>

코드가 길다. 나름 생각하고 풀긴했는데 뒤에 slice 사용한 풀이가 나중에서야 떠올랐기 때문에 이런 코드결과가 나왔다.

제출을 했는데 살펴보니 lastIndxOf는 굳이 필요해보이지 않는다.

function solution(my_string, is_suffix) {

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

 

<개선 코드>

1
2
3
4
function solution(my_string, is_suffix) {
    
    return my_string.slice(my_string.lastIndexOf(is_suffix), my_string.length) === is_suffix? 1 : 0
}
cs