11286번 절댓값 힙(우선순위큐와 abs)
본문 바로가기
코딩공부/코딩테스트 공부 일기장

11286번 절댓값 힙(우선순위큐와 abs)

by 지누이야기 2024. 4. 4.
반응형

 

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;
		}
	}
};

 

이정도면 다음에 분석하면 다음에는 맞출 수 있을 거 같다.

반응형

댓글