
https://school.programmers.co.kr/learn/courses/30/lessons/181908
문제 설명
어떤 문자열에 대해서 접미사는 특정 인덱스부터 시작하는 문자열을 의미합니다. 예를 들어, "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_string | is_suffix | result |
|---|---|---|
| "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 합니다.
function solution(my_string, is_suffix) {
return my_string.endsWith((is_suffix)) ? 1 : 0 ;
}
매개변수 문자열
is_suffix에 있는 문자열이 my_string의 접미사가 맞는지 확인 true/false
🪐 다른 사람의 풀이
function solution(my_string, is_suffix) {
return my_string.slice(my_string.length - is_suffix.length) === is_suffix ? 1 : 0
}
.slice(my_string.length - is_suffix.length)
-> 앞에서 몇번째부터 자를것인지를 length의 차이를 slice의 start지점으로
bababa - ana = 0 1 2 3번째
인덱스 앞까지 자르는 slice의 특성을 이용
비교 후 삼항 연산자 사용
slice는 javascript 초반에 배우고 유용하게 사용하는 메서드인데 이렇게 사용 할 수도 있다는 것을 보고 흥미로웠다.
endsWith() : 어떤 문자열에서 특정 문자열로 끝나는지를 확인할 수 있으며, 그 결과를 true 혹은 false로 반환
이 메서드를 사용하면 문자열이 다른 문자열로 끝나는지 여부를 확인할 수 있습니다. 이 메서드는 대소문자를 구분합니다.
🍨 예시코드
const str = "To be, or not to be, that is the question.";
console.log(str.endsWith("question.")); // true
console.log(str.endsWith("to be,")); // false
console.log(str.endsWith("To be,", 6)); // true