-
-
Notifications
You must be signed in to change notification settings - Fork 304
[dylan-jung] WEEK 03 solutions #2091
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
seungriyou
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이번 한 주도 수고 많으셨습니다~! 🦾
| else if (sum == t) ans.push_back(s); | ||
|
|
||
| for(int i = idx; i < candids.size(); i++) { | ||
| auto next = vector<int>(s); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
매 호출마다 벡터를 복사하면 O(len(s)) 만큼의 비용이 각 호출마다 발생합니다.
주어진 s 벡터에 대해 dfs() 호출 앞뒤로 push_back()과 pop_back()을 하여 동적으로 벡터를 조작한다면 더 효율적이지 않을까요??
|
|
||
| void dfs(int idx, int sum, vector<int> s) { | ||
| if(sum > t) return; | ||
| else if (sum == t) ans.push_back(s); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sum == t일 때도 곧바로 return 하는 것이 더 좋을 것 같습니다!
| }; | ||
|
|
||
| vector<vector<int>> combinationSum(vector<int>& candidates, int target) { | ||
| candids = candidates; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
추가로 주어진 candidates 벡터를 정렬하면 pruning을 할 수 있어 풀이를 더 최적화 할 수 있습니다!
| int dp[100000]; | ||
| dp[0] = max(nums[0], -(1<<30)); | ||
| for(int i = 1; i < nums.size(); i++) { | ||
| dp[i] = max(dp[i-1] + nums[i], nums[i]); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
dp[i]를 구하기 위해 dp[i - 1]만 확인하므로 DP 리스트가 아닌 하나의 변수로 트래킹한다면 공간 복잡도를 O(1)로 최적화 할 수 있을 것 같습니다!
답안 제출 문제
작성자 체크 리스트
In Review로 설정해주세요.검토자 체크 리스트
Important
본인 답안 제출 뿐만 아니라 다른 분 PR 하나 이상을 반드시 검토를 해주셔야 합니다!