Home Summary Ranges
Post
Cancel

Summary Ranges

Leetcode Problem

Summary Ranges

주어진 nums 배열을 다 포함하는 범위를 나타내는 새로운 배열을 만드는 문제입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution:
    def summaryRanges(self, nums: List[int]) -> List[str]:
        arr = []
        if not nums: 
            return arr
        s = str(nums[0])
        for i in range(len(nums) - 1):
            if nums[i] + 1 != nums[i + 1]:
                if s == str(nums[i]):
                    arr.append(s)
                    s = str(nums[i + 1])
                else:    
                    arr.append(s + "->" + str(nums[i]))
                    s = str(nums[i + 1])
        return arr + [s] if s == str(nums[-1]) else arr + [s + "->" + str(nums[-1])]

문자열이 끊어지는 경우는 nums[i]와 nums[i + 1]의 관계가 연속적이지 않을 때뿐이므로, 연속적이지 않을 경우 nums[i]까지를 범위로 나타내고 배열에 넣은 다음 nums[i + 1]을 새로운 범위의 시작점으로 설정합니다.
for문을 돌고 남은 마지막 문자열에 대한 처리는 return 에서 해줍니다.





참고

This post is licensed under CC BY 4.0 by the author.