😎풀이

  1. ab보다 길거나 같아야 부분 문자열로 포함 가능하므로 최소 필요한 반복 횟수 조회
  2. 최소 반복을 기준으로 b가 포함되는지 확인
  3. [ a  b  c  d ] [ a  b  c  d ] [ a  b  c  d ]
            |___________________________|
  4. 위와 같이 최소 길이 + 1 까지는 문자의 경계선이 겹치는 경우가 존재 가능하므로 최소 문자 + 1번까지 반복하여서 검증
  5. 두 케이스 모두 부분 문자열로 탐색되지 않는다면 더 반복해도 동일 -1 반환
function repeatedStringMatch(a: string, b: string): number {
    const minRepeat = Math.ceil(b.length / a.length)
    if(a.repeat(minRepeat).includes(b)) {
        return minRepeat
    }
    if(a.repeat(minRepeat + 1).includes(b)) {
        return minRepeat + 1
    }
    return -1
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글