😎풀이

  1. s를 순회
    1-1. 같은 문자가 반복 된다면 끝 인덱스를 갱신하며 탐색
    1-2. 다른 문자가 나왔다면, 이전까지의 문자 길이가 3 이상인 large group인지 판별 후 갱신
  2. 탐색된 large group 반환
function largeGroupPositions(s: string): number[][] {
    const largeGroup = []
    let start = 0
    let end = 0
    let curChar = s[0]
    for(let i = 1; i < s.length; i++) {
        if(curChar !== s[i]) {
            if(end - start + 1 >= 3) largeGroup.push([start, end])
            start = i
            curChar = s[i]
            continue
        }
        end = i
    }
    if(end - start + 1 >= 3) largeGroup.push([start, end])
    return largeGroup
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글