어떤 문자열에 대해서 접두사는 특정 인덱스까지의 문자열을 의미합니다. 예를 들어, "banana"의 모든 접두사는 "b", "ba", "ban", "bana", "banan", "banana"입니다.
문자열 my_string과 is_prefix가 주어질 때, is_prefix가 my_string의 접두사라면 1을, 아니면 0을 return 하는 solution 함수를 작성해 주세요.
1 ≤ my_string의 길이 ≤ 100
1 ≤ is_prefix의 길이 ≤ 100
my_string과 is_prefix는 영소문자로만 이루어져 있습니다.
my_string | is_prefix | result |
---|---|---|
"banana" | "ban" | 1 |
"banana" | "nan" | 0 |
"banana" | "abcd" | 0 |
"banana" | "bananan" | 0 |
입출력 예 설명
입출력 예 #1
예제 1번에서 is_prefix가 my_string의 접두사이기 때문에 1을 return 합니다.입출력 예 #2
예제 2번에서 is_prefix가 my_string의 접두사가 아니기 때문에 0을 return 합니다.입출력 예 #3
예제 3번에서 is_prefix가 my_string의 접두사가 아니기 때문에 0을 return 합니다.입출력 예 #4
예제 4번에서 is_prefix가 my_string의 접두사가 아니기 때문에 0을 return 합니다.
function solution(my_string, is_prefix) {
if(my_string.includes(is_prefix) && my_string[0] === is_prefix[0]){
return 1
}
return 0
}
95점 ㅠㅠ
자꾸 테스트 3이 틀린다...
이번 문제에 includes
메서드를 사용하기엔 맞지 않았고
간만에 문제를 풀려고 하니 머리가 굳었다..
결국... 구글링하다
startsWith
라는 메서드를 알게되어 풀 수 있었다.
function solution(my_string, is_prefix) {
return my_string.startsWith(is_prefix) ? 1 : 0
}
startsWith?
문자열이 특정 접두사로 시작하는지 확인하는 데 사용된다.
해당 문자열이 접두사로 시작하는 경우 true, 아닌 경우 false를 반환한다.원본문자열.startsWith(검색하려는접두사 , 인덱스)
- 인덱스 : 문자열에서 검색을 시작할 인덱스를 지정 (기본값 0, 필수x)
function solution(my_string, is_prefix) {
return my_string.slice(0, is_prefix.length) === is_prefix ? 1 : 0
}
function solution(my_string, is_prefix) {
return my_string.split(is_prefix)[0]===""?1:0;
}
slice, split로 해결하신 분이 많았다.
나도 초반엔 문자열은 유사 배열이니 for문이나 다른 메서드를 사용해 풀어보려고 했으나...
머리 굳었다..ㅎ... 다시 열심히 해보자
이번 기회로 나의 현재 상태를 다시 한 번 알게 되었고
startsWith
메서드를 알게되었다.
다시 열심히 하자!