관리 메뉴

솜씨좋은장씨

[leetCode] 2215. Find the Difference of Two Arrays (Python) (feat.ChatGPT) 본문

Programming/코딩 1일 1문제

[leetCode] 2215. Find the Difference of Two Arrays (Python) (feat.ChatGPT)

솜씨좋은장씨 2023. 3. 26. 15:19
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 leetCode 의 Find the Difference of Two Arrays 입니다.

 

Find the Difference of Two Arrays - LeetCode

Can you solve this real interview question? Find the Difference of Two Arrays - Given two 0-indexed integer arrays nums1 and nums2, return a list answer of size 2 where: * answer[0] is a list of all distinct integers in nums1 which are not present in nums2

leetcode.com

👨🏻‍💻 문제 풀이

set 을 활용하여 A 와 B의 차집합을 구하는 방식으로 문제를 풀었습니다.

👨🏻‍💻 코드 ( Solution ) - SOMJANG

class Solution:
    def findDifference(self, nums1: List[int], nums2: List[int]) -> List[List[int]]:
        answer_1 = list(set(nums1) - set(nums2))
        answer_2 = list(set(nums2) - set(nums1))

        return [answer_1, answer_2]

👨🏻‍💻 코드 ( Solution ) - SOMJANG - 변수에 저장하지 말고 그대로 return 하면 어떨까?

class Solution:
    def findDifference(self, nums1: List[int], nums2: List[int]) -> List[List[int]]:
        return [list(set(nums1) - set(nums2)), list(set(nums2) - set(nums1))]

변수명 저장 방식 변경은 생각보다 별다른 변화가 없었습니다.

👨🏻‍💻 코드 ( Solution ) - ChatGPT - 1회차 

class Solution:
    def findDifference(self, nums1: List[int], nums2: List[int]) -> List[List[int]]:
        set1 = set(nums1)
        set2 = set(nums2)
        return [list(set1 - set2), list(set2 - set1)]

그래서 이번에는 ChatGPT 에게 풀어보라고 하였습니다.

ChatGPT 는 nums1 과 nums2 의 set 을 미리 만들고 이를 연산한 값을 return 하도록 한 방법으로

결과는 별로 다르지 않았습니다.

👨🏻‍💻 코드 ( Solution ) - ChatGPT - 2회차 - 메모리 사용량을 줄이는 방법을 알려줘

class Solution:
    def findDifference(self, nums1: List[int], nums2: List[int]) -> List[List[int]]:
        res = [[], []]
        set1 = set(nums1)
        set2 = set(nums2)
        for num in set1:
            if num not in set2:
                res[0].append(num)
        for num in set2:
            if num not in set1:
                res[1].append(num)
        return res

이번에는 메모리 사용량을 줄여서 할 수 있는 방법을 알려줘! 라고 물어보았는데

정답의 form 을 미리 res 라는 변수로 만들어 주고

set 반복문을 돌면서 in 으로 체크하고 없는 값만 append 하도록 한 방식이었습니다.

결과는 ! 0.1 MB 정도 덜 사용하고 시간은 비슷한 걸 보면 크게 다르지 않은 것 같았습니다.

읽어주셔서 감사합니다.

 

GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

Comments