코테 자신 없으세요? 무지성으로 코테 풀면 생기는 일
www.youtube.com
오랜만에 주말에 집에 있게 되어 심심하던차,, 백만년만에 LeetCode 문제를 풀어보았습니다. https://www.youtube.com/watch?v=cUT3S4N8fS8 유튜브를 보다 알고리즘에 관련 영상이 떠서 보고 있었는데요, 해당 영상에서 소개해주신 문제를 보다 내가 풀수 있을까? 라는 의문이 들어 급 문제를 풀게 되었습니다.
제가 해당 문제를 풀었을 때 이용한 아이디어는 다음과 같습니다.
"배열에 있는 모든 정수들은 subset 에 포함되거나 포함되지 않는 2가지 경우의 수가 있으니 각 경우의 수로 재귀함수를 돌면 되겠다."
Backtracking 이라는 알고리즘을 떠올린 건 아니고 그냥 떠오르는 아이디어를 가지고 코드 구현을 하니 다행히 바로 통과가 되네요 ㅎㅎ,,
Name: Subsets
Difficulty: Medium
Algorithm: Backtracking
Time Complexity: O(2^n * n)
Space Complexity: O(2^n * n)
문제 링크: https://leetcode.com/problems/subsets/description/
class Solution:
def subsets(self, nums: List[int]) -> List[List[int]]:
answer = []
self.back_tracking(answer, [], nums, 0)
return answer
def back_tracking(self, answer, tmp, nums, depth):
if depth == len(nums):
answer.append(tmp)
return
self.back_tracking(answer, tmp + [nums[depth]], nums, depth + 1)
self.back_tracking(answer, tmp, nums, depth + 1)
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 8월 10일 오전 9:00