[LeetCode] Check If String Is a Prefix of Array

준규·2022년 9월 30일
0

문자열 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을 해보니

정답이었다

profile
안녕하세요 :)

0개의 댓글