-
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
[이분탐색] 11월 5일 #12
base: main
Are you sure you want to change the base?
[이분탐색] 11월 5일 #12
Conversation
이름: 조수아 학번: 2371060 과제 제출 기존 제출: 17266, 3079, 2343, 16401, 10815
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.
10815
수아님 안녕하세요 :3 10815번 코드리뷰 드렸습니다.
깔끔하게 풀어주셔서 코멘트 남길 부분이 따로 없네요 :D
질문이 있으시다면 언제든 편히 리뷰어를 호출해주세요~
while (left <= right) { | ||
int mid = (left + right) / 2; | ||
if (arr[mid] == target) return 1; | ||
else if (arr[mid] > target) right = mid - 1; | ||
else left = mid + 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.
이분탐색의 원리를 잘 이해하고 구현해주셨네요 멋있습니다 :3
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.
[이분탐색 이론 문제 코드 리뷰 완료]
16401(P2, P3)
수아님 안녕하세요! 어려운 도전문제까지 잘 풀어주셨네요!
주석을 꼼꼼하게 달아주셔서 쉽게 이해할 수 있었습니다!
몇 가지 코멘트 드렸습니다.
궁금한 점이 있다면 리뷰어를 호출해주세요!
int numPeople, numSnacks; | ||
cin >> numPeople >> numSnacks; | ||
|
||
//과자 길이 배열 입력 | ||
vector<int> snackLengths = getInputArray(numSnacks); |
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. 변수명은 스네이크 코드 형식을 따라주세요!
int hello_world; // 변수
int helloWorld() // 함수
const int HELLO_WORLD // 상수
// 사용자 입력을 받아 과자 길이 배열을 반환하는 함수 | ||
vector<int> getInputArray(int size) { | ||
vector<int> array(size); | ||
for (int& length : array) { | ||
cin >> length; | ||
} | ||
return array; | ||
} |
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. 함수화 좋습니다! 그런데 알튜비튜에서는 입출력은 메인에서 받고, 주요 로직은 각 함수에서 구현하는 방식으로 제안드리고 있으니 참고해주세요 😊
int count = 0; | ||
|
||
//각 과자 길이를 현재 중앙값(mid)로 나눠 몇 명에게 나눠줄 수 있는지 계산 | ||
for (int length : snackLengths) { | ||
count += length / mid; | ||
} |
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. 길이가 mid
일 때 나누어줄 수 있는 조각의 수를 구하는 부분도 함수로 빼면 좋겠네요 🤗🤗
|
||
//과자를 나눠줄 수 있는 최대 길이를 이진 탐색을 통해 찾는 함수 | ||
int getMaxSnackLength(int numPeople, const vector<int>& snackLengths) { | ||
int left = 1, right = *max_element(snackLengths.begin(), snackLengths.end()); |
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.
매개변수 탐색을 위한 초깃값을 잘 설정해주셨네요 💯
int main() { | ||
ios_base::sync_with_stdio(false); | ||
cin.tie(NULL); | ||
cout.tie(NULL); | ||
|
||
//인원 수와 과자 개수 입력 | ||
int numPeople, numSnacks; | ||
cin >> numPeople >> numSnacks; | ||
|
||
//과자 길이 배열 입력 | ||
vector<int> snackLengths = getInputArray(numSnacks); | ||
|
||
//나눠줄 수 있는 최대 과자 길이를 계산하고 출력 | ||
int result = getMaxSnackLength(numPeople, snackLengths); | ||
cout << result << "\n"; | ||
|
||
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.
메인함수 깔끔하고 좋습니다👍👍👍
이름: 조수아
학번: 2371060
과제 제출
기존 제출: 17266, 3079, 2343, 16401, 10815