-
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
[정렬] 9월 3일 #1
base: main
Are you sure you want to change the base?
The head ref may contain hidden characters: "\uC815\uB82C"
[정렬] 9월 3일 #1
Conversation
1026번, 11651번 풀었습니다.
11651 수정해서 다시 올립니다!
1026, 11651 과제 수정하여 제출합니다.(전체 주석처리)
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. 1026 코드 리뷰 완료
버블 정렬 수업에서 다룬대로 잘 구현해 주셨습니다:) 다만 코멘트 남긴 것처럼
부등호의 방향을 이용하면 내림차순도 좀 더 간단하게 구현할 수 있습니다!!
그리고 정렬을 함수로 직접 구현하지 않고 sort 함수 사용하는 걸로 구현해보세요!
(sort 함수 사용 방법은 라이브 코딩 10825.cpp 참고해주세요!)
전역 변수 사용 지양도 신경 써주세요!
다른 부분은 다 좋습니다:)
수정하시고 저 불러주세요!
BubbleSort(n); | ||
advancedBubbleSort(n); |
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.
이렇게 정렬을 구현해도 좋지만 C++의 algorithm 라이브러리에 있는 sort() 함수를 사용하는 연습을 해보셔도 좋을 것 같아요! 앞으로 sort함수를 쓸 일이 많을 것 같아서 이 문제부터 바꿔서 구현하는 연습을 해보면 좋을 것 같아요! sort함수로는 내림차순도 구현 가능합니다!! 따라서 sort함수를 이용하면 C 배열은 필요 없습니다!
void BubbleSort(int n) { | ||
|
||
for (int i = 0; i < n; i++) { | ||
for (int j = i + 1; j < n; j++) { | ||
|
||
if (arrB[i] > arrB[j]) { | ||
arrC[i]--; | ||
} | ||
else { | ||
arrC[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.
버블 정렬을 사용할 때 내림차순으로 구현하고 싶으시면 일일히 비교해서 인덱스를 찾는 방법 말고 오름차순 정렬에서 부등호의 방향을 반대로 해주는 방법이 좀 더 간단할 거예요! 그러면 다른 배열(arrC)을 사용하지 않아도 됩니다!
|
||
using namespace std; | ||
|
||
vector<int> arrA, arrB, arrC; |
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.
P1. 11651 코드 리뷰 완료
안녕하세요 승연님
나중에, 코드가 길어졌을 땐 주석으로 보충 설명 해주셔도 좋을 것 같습니다. 🔥🔥
정말! 작고 소중한 실수가 있어서 코멘트 달았습니다. 백준에선 꼭 맞았습니다! 가 떠야 과제 제출 인정되니 꼭 수정 부탁 드립니다. 🥺
또한, 고려해주시면 좋을 부분들에 대해 코멘트 달았습니다. 편하게 확인 부탁 드립니다 !
p1 은 꼭 수정 부탁 드리며, p2 혹은 p3에 대해선 참고해주시고 수정해주셔도 좋을 것 같습니다!
수정하신 후 저 리뷰어로 불러주시기 바랍니다!
감사합니다
|
||
int main() { | ||
|
||
//int n = 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.
p1. 주석 처리가 되었네요! 수정 부탁드려요!🤗
vector<vector<int>> arr; | ||
arr.assign(n, vector<int>(2, 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.
p2.
2차원 배열로 해결해주셨네요!! arr[i][1]
과 arr[i][0]
은 직관적인 변수명이 아니기에 간혹 헷갈릴 우려가 생기기도 하죠!
그렇다면, 2개의 변수를 한 번에 효율적으로 관리할 수 있는 방법은 없을까요?
- 구조체라는 여러 자료형을 하나로 묶어 사용하는 사용자 정의 자료형이 있죠!
x, y
처럼 직관적인 변수명으로 구조화해준다면 참조할 때 헷갈리지 않는다는 장점이 있겠습니다. pair
이라는 두 개의 자료형을 하나로 묶어서 사용할 수 있는 Container도 있습니다. 😄
pair
은 벡터에 자료형으로 선언하여 2차원 배열처럼 사용하기도 하고, 현재 문제처럼 좌표계를 표현할 때 사용하기도 합니다. 아래 사용 방법 블로그를 첨부합니다!
두 자료형을 하나로 묶어 사용할 때 구조체 vs pair 둘 중 편한 걸로 사용해주시면 되며, 보통 코테에선 변수명을 선언해주지 않아도 되는 pair 을 많이 사용합니다!
🔥🔥 그럼, pair
을 sort
했을 땐 두 자료형 중 어느 것을 기준으로 정렬될까요? 이를 고려하여 비교 함수를 구현해주시면 좋을 것 같습니다.
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.
📌 배열을 사용하실 때 고려해주시면 좋을 부분들을 남길게요!
선언과 동시에 초기화해주는 것은 가독성 면에서도 좋고, 무엇보다 편하기에 권장 드리는 부분입니다.
보통, 다음과 같은 상황이 주어질 때가 많습니다. 어떻게 선언하는 게 편할 지 예상해볼까요!
지금처럼 row와 column의 크기가 정해져 있을 때
vector<vector<int>> arr(n, vector<int>(m, 0));
row 크기만 정해져 있고, column의 크기는 모를 때
vector<vector<int>> arr(n);
vector<vector<int>> arr;
arr.assign(n, vector<int>(2, 0));
그럼 위 해당 코드는 어떻게 선언할 수 있을까요? 권장 드리는 코드입니다!
vector<vector<int>> arr(n, vector<int>(2, 0));
정렬 선택 과제 제출합니다!
<기존 제출>
문제 번호 1026, 11651