Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 캐치카페
- 자연어처리
- SW Expert Academy
- programmers
- gs25
- Baekjoon
- 데이콘
- 더현대서울 맛집
- Kaggle
- Git
- 우분투
- 프로그래머스 파이썬
- Docker
- 코로나19
- PYTHON
- ubuntu
- 편스토랑 우승상품
- 파이썬
- 맥북
- ChatGPT
- Real or Not? NLP with Disaster Tweets
- hackerrank
- leetcode
- 프로그래머스
- dacon
- github
- 편스토랑
- AI 경진대회
- 백준
- 금융문자분석경진대회
Archives
- Today
- Total
솜씨좋은장씨
[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:19728x90
반응형
코딩 1일 1문제! 오늘의 문제는 leetCode 의 Find the Difference of Two Arrays 입니다.
👨🏻💻 문제 풀이
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 정도 덜 사용하고 시간은 비슷한 걸 보면 크게 다르지 않은 것 같았습니다.
읽어주셔서 감사합니다.
'Programming > 코딩 1일 1문제' 카테고리의 다른 글
Comments