2022년 03월 09일 수요일 - 아 쉬는날 너무 조아


오늘 올려볼 문제는 82번 Remove Duplicates from Sorted List II 이라는 문제이다.


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

leetcode 문제 사진

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

오늘은 시간하고 공간을 좀 아껴보겠다고 좀 더럽게 풀었다...


입력


사진에서도 볼 수 있듯이 정렬된 Linked List 하나가 입력으로 들어온다.



풀이 및 코드


Linked List 에서 중복된 원소들은 모두 제거하여 리턴하는 문제다.


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

그냥 전에 나왔던 값을 기준으로 Linked List에 있는 중복된 원소를 삭제해주는 방식이다.


이제 코드를 봐보자!


풀이코드

class Solution {
    public ListNode deleteDuplicates(ListNode head) {
        if(head == null)
            return null;

        boolean unique = true;
        int pre = head.val;
        ListNode temp = head;
        ListNode node = new ListNode();
        ListNode result = node;

        head = head.next;

        while(head != null)
        {
            if(head.val == pre)
            {
                unique = false;
            }
            else
            {
                if(unique)
                {
                    node.next = temp;
                    node = node.next;
                    node.next = null;
                }

                pre = head.val;
                temp = head;
                unique = true;
            }

            head = head.next;
        }
        if(unique)
            node.next = temp;

        return result.next;
    }
}




제출 화면

leetcode 문제 맞았습니다


사실 배열이나 HashMap을 사용하면 더 쉽게 풀 수 있긴 하지만 시간과 공간을 조금이라도 줄여보고자 조금 더럽게 풀었다.

내일은 좀 덜 귀찮은 문제가 나왔으면 좋겠다.


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

+ Recent posts