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

[정렬] 9월 8일 #1

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

[정렬] 9월 8일 #1

wants to merge 1 commit into from

Conversation

minji1289
Copy link
Collaborator

내용 & 질문

정렬 과제 제출합니다!

<기존 제출>

1431, 11651

<추가 제출>

Copy link

@bsa0322 bsa0322 left a comment

Choose a reason for hiding this comment

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

p2. 11651 코드리뷰 완료
민지님 안녕하세요 😊 코드도 완전 깔끔하고, 주석도 써주셔서 보기 너무 좋았습니다! 코딩테스트에서 사용할 수 있는(?) 소소한 팁과, 비교함수 관련해 코멘트 남겼습니다. 사소하지만 앞으로의 코드 작성 때 조금 더 편하고 가독성 있는 코드를 작성할 수 있어서 수정해주셔도 좋을 것 같습니다! 수고하셨습니다 🔥🔥

Comment on lines +7 to +9
struct point { //점 구조체
int x, y;
};
Copy link

@bsa0322 bsa0322 Sep 8, 2022

Choose a reason for hiding this comment

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

p2. 구조체 선언을 해주셨네요!! 구조체도 너무 좋지만, 지금은 변수가 2개 뿐이니 이럴 때 더 간편하게 사용할 수 있는 것이 있습니다! c++의 pair 클래스에 대해 한 번 알아보시면 좋을 것 같아요~! 뿐만 아니라 해당 pair는 typedef로 미리 선언하고 사용하면 더 간편하게 쓸 수 있습니다!!

사실 코드에 정답은 없지만, 코테는 특히 빨리 코딩을 해야하고 그러다보니, 원소가 2개인 경우엔 pair 사용을 더 많이 하고 있어요!! 하지만 pair는 이름에서도 유추하실 수 있듯이 원소를 2개씩만 묶기 때문에, 원소가 3개 이상인 경우엔 구조체를 사용하여 묶어주는 것이 더 편하겠죠 😊 용도에 맞춰 더 좋은 걸 골라 사용하시면 될 것 같습니다!

Comment on lines +11 to +16
bool cmp(const point &a, const point &b) {
if (a.y == b.y) { //y좌표가 같으면 x좌표가 증가하는 순서
return a.x < b.x;
}
return a.y < b.y; //y좌표가 같지 않으면 y좌표가 증가하는 순서
}
Copy link

@bsa0322 bsa0322 Sep 8, 2022

Choose a reason for hiding this comment

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

p2. 비교 함수를 아주 잘 구현해주셨네요!! 해당 문제에서 지금의 코드는 완벽하지만, 나중에 비교 조건이 여러 개가 됐을 경우를 대비해서 비교 함수에서 조건은 !=을 써주는 편이 좋아요!
만약 ==을 쓴다면, 같을 경우에 계속 파고들어 인덴테이션이 점점 깊어지겠죠! 이럴 때, !=를 쓰게 되면 아닌 조건에 대해 먼저 처리하므로 파고 들어가지 않고 끊어내 줄 수 있어요.
더 자세한 내용은 라이브 코딩 문제 중, 국영수(10825) 를 참고해주셔도 좋을 것 같아요~! 🥰

Copy link

@Minseo10 Minseo10 left a comment

Choose a reason for hiding this comment

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

P2. 1431번 코드리뷰 완료
안녕하세요 민지님:) 코드 잘 봤습니다!
문제 조건도 잘 구현하셨고, 또 주석도 자세하고 예쁘게 써주셔서 편하게 리뷰할 수 있었네요ㅎㅎ
cmp함수 부분에 코멘트 몇가지 남겼으니 확인해 주시고 수정하시면 리뷰어로 불러주세요!
수고하셨습니다 😃

Comment on lines +17 to +29
//a의 모든 자리수의 합 구하기
for(int i=0; i<a.size(); i++){
if (a[i] - '0' <= 9 && a[i] - '0' >= 0){
a_sum += a[i] - '0';
}
}

//b의 모든 자리수의 합 구하기
for(int i=0; i<b.size(); i++){
if (b[i] - '0' <= 9 && b[i] - '0' >= 0){
b_sum += b[i] - '0';
}
}
Copy link

Choose a reason for hiding this comment

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

P2 : 문자열의 모든 자리수의 합을 구하는 부분은 sum함수를 따로 만들어서 분리하는게 어떨까요? 지금은 cmp함수가 비교기능과 자리수의 합을 구하는 기능, 즉 두 가지 역할을 수행하고 있어요..! 각 함수의 역할은 1개씩으로 명확하게 해주시는 것을 권장합니다!

Comment on lines +32 to +35
//만약 1,2번 조건으로 비교할 수 없을 때(자리수의 합이 같을 때)
if (a_sum==b_sum){
return a<b;
}
Copy link

Choose a reason for hiding this comment

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

P2 : 11651번 문제에서 수아님이 코멘트하신 대로, cmp함수에서 조건은 !=을 써주는 편이 좋아요. 그렇게 하려면, 두 번째 if문은 a와 b의 자리수의 합이 다른 경우를 다루는 것이 좋겠죠?


//a의 모든 자리수의 합 구하기
for(int i=0; i<a.size(); i++){
if (a[i] - '0' <= 9 && a[i] - '0' >= 0){
Copy link

Choose a reason for hiding this comment

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

P3 : a[i]와 '0'의 차이를 따지기보다는, a[i]가 '0'과 '9' 사이에 있는지 확인해 주는 것도 좋을 것 같아요! 그리고 숫자인지 아닌지 확인할 때 '0', '9'와 직접적으로 비교하는 방법도 좋지만, isdigit()함수를 이용하는 방법도 있으니 샘플코드를 참고하시면 좋을것같아요~

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