LeetCode 문제 풀이

[LeetCode] 228번 문제를 풀어보았다. (ft. java)

pantrom 2022. 2. 28. 19:54

2022년 02월 28일 월요일 - 이번주는 금요일만 존재한다!!


오늘 올려볼 문제는 228번 Summary Ranges 이라는 문제이다.


사진을 클릭하면 해당 문제로 이동합니다.

leetcode 문제 사진

오늘도 LeetCode 사이트 오늘의 문제를 가지고 왔다.

자동화되어서 올라가는 포스트... 살짝 맘에 안들지만... 뭐 편하니깐


입력


사진에서도 볼 수 있듯이 int 배열 하나가 입력으로 들어온다.



풀이 및 코드


정렬된 배열 중 이어져있는 배열들의 범위들을 리턴하는 문제다. (말로 설명하기 힘들다... 문제를 참고해주시길..)


오늘은 처음부터 정답을 생각해냈다.

그냥 직관적으로 풀면 풀린다.


이제 코드를 봐보자!


풀이코드

class Solution {
    public List<String> summaryRanges(int[] nums) {
        List<String> result = new ArrayList<String>();
        int first = -1, last = -1;
        boolean flag = true;
        if(nums.length == 0)
        {
            return result;
        }

        for(int i = 0; i < nums.length; i++)
        {
            if(flag)
            {
                first = nums[i];
                last = nums[i];
                flag = false;
                continue;
            }

            if(nums[i] - 1 == nums[i - 1])
            {
                last = nums[i];
            }
            else
            {
                if(first == last)
                {
                    result.add(Integer.toString(first));
                }
                else
                {
                    result.add(first + "->" + last);
                }

                flag = true;
                i--;
            }
        }

        if(first == last)
        {
            result.add(Integer.toString(first));
        }
        else
        {
            result.add(first + "->" + last);
        }

        return result;
    }
}




제출 화면

leetcode 문제 맞았습니다


오늘은 문제가 쉬워서 금방 풀었다.

원래 주의 시작은 문제가 쉬웠고 토요일이 항상 어려웠는데... 이번주도 그럴거 같아서 벌써 긴장이된다..


내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.