inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

코딩테스트 [ ALL IN ONE ]

완전탐색 (8) - 구현 [two sum]

leetCode - Two Sum 문제 Memory Limit Exceeded 에러

해결된 질문

668

changonna

작성한 질문수 1

3

class Solution(object):
    def twoSum(self, nums, target):
        def backtrack(start, curr):
            # base case : 2개의 합을 더해서 target과 같으면
            if len(curr) == 2 and sum(nums[i] for i in curr) == target:
                return curr

            # recursion : 
            for i in range(start, len(nums)):
                curr.append(i)
                res = backtrack(i + 1, curr)
                
                if res:
                    return res
                
                curr.pop()
            return None
        return backtrack(0, [])

https://leetcode.com/problems/two-sum/submissions/1130560186/

 

이 코드로 작성해서 leet-code의 two sum 문제에 제출해봤을 때 Memory Limit Exceeded 에러가 나는건 어떻게 해결해야 할까요?

python 코딩-테스트 알고리즘

답변 1

1

개발남노씨

안녕하세요 changonna님!!

오 이거 직접구현해서 돌려보셨군요.

이게 완전탐색을 설명하려다보니 우리가 배웠던 twosum을 가지고 온건데, 실제 이걸 돌려보면 재귀 호출과 추가 메모리 사용이 많아, 특히 큰 입력 배열에 대해서는 비효율적입니다.

그래서 우리가 반복문을 이용해서 완전탐색을 했던거에요~!

 

저희 처음에 twosum문제 배울 때 완전탐색 - 반복문 구현 (O(n^2))으로 구현했을 때에도 시간초과가 났잖아요. 근데 이걸 완전탐색 -재귀 구현(시간복잡도도 O(n^2)인데 재귀호출이 많아서 메모리사용이 엄청 많아짐)으로 구현하면 더 비효율적인 풀이가 되겠죠.

 

그래서 결국 우리 정렬을 하거나 dictionary 사용했던것처럼 풀이를 발전시켜야 합니다.

결론: 해당 문제의 제약조건 하에서는 완전탐색(더더욱 backtracking 구현)은 통과하기 힘들다.

하지만 구현자체는 굉장히 잘하셨어요!!

 

혹시 더 궁금한점 있으면 질문 남겨주세요 :)

1

changonna

감사합니다!

노션 공유 링크

0

87

2

수업 중간에 내주신 문제는 해답을 알 수 없는걸까요?

0

77

2

최신 강의와 비교

0

85

2

Min Cost Climbing stairs 질문

0

76

2

노션 공유 부탁드립니다!

1

88

2

for 문에 sort 함수 를 사용하면

1

90

2

노션 공유 부탁드립니다.

0

104

2

디스코드가 올바르지 않다고 뜹니다..!

0

107

1

그래프

0

98

2

노션 공유

1

123

2

시간복잡도 질문

2

125

3

11강 질문

1

78

2

노션 공유 부탁드립니다

0

84

2

linkedList - BrowserHistory 코드 질문

0

76

1

list1.append(list2)와 list1.append(list2[:])의 차이가 무엇인가요?

1

168

1

라이브러리 사용

1

136

2

문제 교재는 따로 없는 거 맞나요?

1

202

2

LCA 관련해서 질문이 있습니다.

1

118

2

[Unique Paths] 완전탐색 / DP (후반부)

0

108

1

dp 계단오르기최소비용질문입니다.

0

109

1

Dynamic Array 의 size 정보가 저장되는 곳

2

161

2

노션공유가 안된듯 합니다

1

163

2

[코테 적용] 👉 [3번 문제] 완전탐색 (DFS, BFS) (전반부)

1

122

1

강의자료 만들 때 사용하신 프로그램이 뭘까요?

1

203

1