😎풀이

  1. 각 파티션에 사용된 단어가 다음 파티션에 재등장 하지 않기 위해선 모든 단어가 마지막으로 사용될 때까지 파티션을 연장해야 함
  2. s의 첫 문자부터 연장 가능한 최대치로 연장시키며 파티션 분할
  3. 분할된 파티션의 길이를 담은 배열 partitions 반환
function partitionLabels(s: string): number[] {
    const partitions = []
    let startIdx = 0
    let lastIdx = s.lastIndexOf(s[0])
    for(let i = 0; i < s.length; i++) {
        lastIdx = Math.max(lastIdx, s.lastIndexOf(s[i]))
        if(i === lastIdx) {
            partitions.push(lastIdx - startIdx + 1)
            startIdx = i + 1
        }
    }
    return partitions
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글