문자열 s가 주어지고 문자열 배열 words가 주어진다고 한다
이런 상황에서 s가 words의 prefix string인지를 판별하는 문제이다
prefix string이 되려면 words 배열의 처음 부터 양수 k개의 단어를 합친 문자열이 s랑 같다면 s는 words의 prefix string이라고 한다
Example 을 보자
2번 예시는 1번 예시와 다르게 처음 단어 부터 더하다 보면 apples라는 단어 때문에 s는 words 의 prefix string이 될 수 없다
즉 words 배열의 처음부터 하나씩 단어를 더해보면서 s랑 비교 체크를 해보면 될 것 같았다
const isPrefixString = function(s, words) {
let concatWord = "";
let result = false;
words.forEach((word) => {
concatWord += word;
if(!s.includes(concatWord)) return false;
if(s === concatWord) result = true;
})
return result
};
words 배열을 forEach를 사용하여 맨 앞 문자부터 시작해서 concatWords에 추가를 해주고 s랑 비교하는 작업을 했다
만약 s문자열안에 concatWords가 포함되어있지 않다면 엉뚱한 문자열이 더해진것이므로 바로 false를 리턴하고
concatWords가 s랑 같다면 result 값을 true로 변경해주었다
forEach문이 끝까지 수행된다면 result값을 리턴해준다
submit을 해보니
정답이었다