반응형
1. 우선순위 큐는 기본적으로 내림차순으로 정렬시킨다. 그러나 정렬기준을 바꿀 수 있다.
2. 기본적으로 우선순위 큐는 priority_queue<자료형>변수이름 이렇게 선언한다.
3. 그러나 정렬기준을 바꾸고 싶으면 priority_queue<자료형,컨테이너 타입, 정렬기준>변수이름 이렇게 선언한다.
4. 오름차순으로 선언하고 싶으면 priority_queue<자료형,컨테이너 타입, greater<자료형>변수이름 이렇게 선언한다.
5. 이 밖에 정렬 기준을 바꾸고 싶으면 priority_queue<자료형,컨테이너 타입, cmp>변수이름 이렇게 선언후 정렬기준을 바꾼다.
6. 멤버함수는 push(변수),pop(),top(),empty(),size() 가 있다.
7. abs(변수)를 쓰면 변수의 절댓값으로 바꿔준다.
8.이런식으로 cmp를 수정하여 정렬기준을 사용할 수 있다. 앞에 있는 a가 b보다 크다면 true를 return하면 순서를 바꿔주게 된다.
struct cmp {
bool operator()(int a, int b) {
int a_abs = abs(a);
int b_abs = abs(b);
if (a_abs == b_abs) {
return a > b;
}
else {
return a_abs > b_abs;
}
}
};
이정도면 다음에 분석하면 다음에는 맞출 수 있을 거 같다.
반응형
'코딩공부 > 코딩테스트 공부 일기장' 카테고리의 다른 글
29723번 브실이의 입시전략 (0) | 2024.04.03 |
---|---|
백준 1874번 스택수열 (0) | 2024.04.02 |
3월 23일 스택과 큐 공부 (0) | 2024.03.25 |
1940번 난이도:실버 4 (주몽의 명령) (2) | 2024.03.07 |
2018번 난이도:실버 5(연속된 자연수의 합 구하기)-투 포인터 (2) | 2024.03.07 |
댓글