Skip to content
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월 7일 #9

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

[이분탐색] 10월 7일 #9

wants to merge 1 commit into from

Conversation

yekim8
Copy link
Collaborator

@yekim8 yekim8 commented Oct 29, 2022

내용 & 질문

제출합니다!

<기존 제출>

3079, 17503

Copy link

@flowersayo flowersayo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

p2.

이번 맥주 축제 문제가 자료형 범위에 굉장히 까다로운 문제더라구요..! 문제에 주어지는 범위 자체는 모두 int범위 이내여서, 처음에는 long long생각을 못했는데 이분탐색 과정에서 long long범위가 넘어가는 경우가 생기는 거 같아요!

사실 코딩테스트에선 준비해주신 샘플코드처럼 모두 long long으로 쓰는게 빠르고 간편하겠지만, 코드리뷰인만큼 정확하게 말씀드리는 것이 좋을 것 같아서 피드백 남겼습니다! (long long이 메모리가 많이 들기도 하구요!)

그래서 지금 이분탐색 함수 부분에 left, right, mid만 long long 자료형을 써주셔도 될 것 같습니다 😊😊


for (int i = 0; i < k; i++) {
cin >> beer[i].second;
cin >> beer[i].first;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

p3. 혹시 따로 입력받으신 이유가 있으실까요?

cin >> beer[i].first;
}
sort(beer.begin(), beer.end(), cmp);
long long int sum = 0;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

p2. sum의 범위는 200,000 * 10,000 로 int 범위 이내이므로 int 형을 사용해주었어도 되었을 것 같아요!

}

sort(beer.begin(), beer.end());

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

p2. 탐색 범위를 더 줄일 수 있을 것 같아요! 입력받는 맥주들의 도수 레벨 중 최댓값보다 도수 레벨을 높일 경우는 없을 테니까, 입력받는 도수레벨 중 최댓값을 right포인터로 설정하면 어떨까요?


//n개를 채우지 못할 경우 -1 리턴(항상 m보다 작은 값)
return -1;
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🥰🥰

Copy link

@dbswn dbswn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3
안녕하세요 영은님! 문제 풀이도 너무 깔끔하고 주석도 잘 작성해주셔서 코드 읽기 너무 좋았습니다! 로직도 잘 짜주셨고 함수화도 너무 잘해주셔서 따로 드릴 코멘트가 없을 정도에요! 🥰

간단한 코멘트 달았으니, 확인 부탁 드립니다 !수정하신 부분 있으시면 리뷰어로 불러주셔도 좋습니다! 수고 많으셨습니다.감사합니다. 🤗🤗

using namespace std;

//시간이 mid일 때 심사할 수 있는 최대 사람 수를 계산하는 함수
unsigned long long calPeople(unsigned long long mid, vector<unsigned long long>& entry) {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3
long long 많이 쓰니까 typedef long long ll; 로 선언하고 사용하면 어떨까요?

using namespace std;

//시간이 mid일 때 심사할 수 있는 최대 사람 수를 계산하는 함수
unsigned long long calPeople(unsigned long long mid, vector<unsigned long long>& entry) {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

사람 수 구하는 부분 따로 함수화 해주신거 너무 좋아요~👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants