😎풀이

  1. start에 시작 범위 정의
  2. nums를 순회
    2-1. 시작 범위가 이전 순회한 요소의 값과 같을 경우 정답 배열에 단일 범위 입력
    2-2. 시작 범위가 이전 숫자와 다르면서 연속적이지 않을 경우 시작 범위와 종료 범위 입력
function summaryRanges(nums: number[]): string[] {
    if (nums.length === 0) return [];
    
    const result: string[] = [];
    let start = nums[0];
    
    for (let i = 1; i <= nums.length; i++) {
        if (i === nums.length || nums[i] !== nums[i - 1] + 1) {
            if (start === nums[i - 1]) {
                result.push(`${start}`);
            } else {
                result.push(`${start}->${nums[i - 1]}`);
            }
            if (i < nums.length) {
                start = nums[i];
            }
        }
    }
    
    return result;
}
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글