-
Notifications
You must be signed in to change notification settings - Fork 0
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
[동적계획법] 10월 3일 #8
base: main
Are you sure you want to change the base?
Conversation
P3. 20923 코드 리뷰 완료 |
|
||
deque<int> deck[2], ground[2]; | ||
|
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.
P3. 클린 코드를 위해서 전역 변수 사용을 지양하시기를 부탁드립니다!! 😄
//도도가 종을 칠 수 있는 경우 | ||
if (ground[0].size() && ground[0].back() == 5) | ||
return 0; |
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.
P3. 클린 코드를 위해서 중괄호를 사용해주시기를 부탁드립니다!! 🎃
|
||
while (m--) | ||
{ |
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.
P3. 여기 while문부터는 함수화를 해주시면 👍 코드가 될 것 같습니다!
deck[w].insert(deck[w].end(), ground[1 - w].begin(), ground[1 - w].end()); | ||
deck[w].insert(deck[w].end(), ground[w].begin(), ground[w].end()); | ||
ground[1 - w].clear(); | ||
ground[w].clear(); | ||
} | ||
|
||
turn = 1 - turn; |
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.
P3. 1-w 도 좋지만 저희에게는 !이 있죠!!!!
!turn !w 이렇게요~ 😀
//참고한 블로그 링크 : https://seastar105.tistory.com/75 | ||
//deque 배열의 인덱스를 이용해 코드를 효율적으로 간소화시킨 아이디어를 참고 |
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.
👍. 어디를 참고했다고 알려주시는 거 너무 좋습니다~ 🥇
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.
P2. 11048 코드리뷰 완료
현아님 안녕하세요!
동적계획법을 잘 이해하고 문제 풀어주신 것 같아요!🥰 다만 말씀드린 것처럼 더미 인덱스를 확용하면 if-else문을 한줄로 해결 가능합니다!! 더미 인덱스 사용 방법을 익히시면 앞으로도 도움이 많이 될 것 같아요! 수고하셨습니다! 궁금한 점이 있으면 리뷰어를 호출해주세요! 수고하셨습니다!! 😎😎
if (i > 0 && j > 0) | ||
{ | ||
dp[i][j] = max(max(dp[i - 1][j], dp[i][j - 1]), dp[i - 1][j - 1]) + board[i][j]; | ||
} | ||
else if (i > 0) | ||
{ | ||
dp[i][j] = dp[i - 1][j] + board[i][j]; | ||
} | ||
else if (j > 0) | ||
{ | ||
dp[i][j] = dp[i][j - 1] + board[i][j]; | ||
} |
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.
더미 인덱스(가장 앞줄이 0으로 채워진 vector)를 사용하면 이 부분을 한번에 처리할 수 있습니다!
int n, m; | ||
vector<vector<int>> board(n, vector<int>(m, 0)); | ||
vector<vector<int>> dp; |
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.
전역 변수 사용은 지양해주세요! 이 문제는 지역 변수로 충분히 해결 가능합니다!
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.
11053 코드리뷰 완료
안녕하세요! 현아님 ㅎㅎ
저희가 PPT 에서 제공해드린 해결 가이드라인을 정확히 이해하시고 문제를 잘해결해주셨네요
사소한 커멘트만 몇개 남기고 갑니당 :)
동적계획법 과제도 수고 많으셨습니다 ~!😊
max_e = dp[j]; | ||
} | ||
} | ||
dp[i] += max_e; |
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.
흠 사실.. 정답 유무와는 크게 관계없는 부분이지만 +=
보다는 =
로 쓰는게 의도를 더 잘 드러낼 수 있을 것 같아용! ㅎㅎ
max_e = dp[j]; | ||
} | ||
} | ||
dp[i] += max_e; |
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.
p2. i번째 루프에서 이전 원소 ( 0 ~ i-1) 들로 끝나는 최장 수열의 길이 중 최댓값을 저장하기 위해서 max_e 변수를 사용해주셨는데요! max_e를 없애고 바로 dp[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.
P1. 2156코드리뷰 완료
안녕하세요 현아님!
백준에서 코드를 돌려봤더니 틀렸습니다가 뜨네요 😭 제가 에러난 것으로 추정되는 부분에 코멘트 남겼으니 확인 후 수정해주세요~!
이번 과제도 수고하셨습니다 😄
09월 27일 - 동적계획법/2156.cpp
Outdated
for (int i = 3; i <= n; i++) | ||
{ | ||
dp[i] = max(dp[i - 2] + inputs[i], dp[i - 1]); | ||
} |
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.
P1. 유선님 백준에서 코드를 돌려봤더니 '틀렸습니다' 가 뜨네요...! 이 부분에서 dp 점화식을 잘못 세운 것 같아요. 문제 조건으로 '연속으로 3번 이상 마시지 않는다' 니까, i-3번째 잔까지 최대로 마시고 i-2번째에서 안마시는 경우도 고려해야 하지 않을까요?
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.
제가 백준에서 통과한 코드가 아니라 다른 코드를 업로드했네요ㅜㅜ 번거롭게 하여 죄송합니다. 재업로드했습니다!!
[추가제출 확인 완료] |
내용 & 질문
<기존 제출>
<추가 제출>