Loading...

자바 자료구조 우선순위 큐 심화응용 - 내가 원하는 우선순위에 맞는 우선순위 큐를 만드는 방법

1. 원하는 우선순위 기준에 맞는, 우선순위 큐 만들기 [(1, 7), (3, 2), (3, 1), (6, 2)] 와 같이 2차 평면상의 점들의 위치가 순서대로 주어졌을 때, 각각의 점의 위치가 주어질 때 마다 지금까지 주어진 점들 중 x, y의 곱이 가장 큰 경우를 출력하는 프로그램을 작성해보세요. 위와 같은 문제는 어떻게 해결할 수 있을까? 무작정 코드를 작성한다면 점의 위치가 주어질때마다, x*y를 계산하여 최대가 되는 경우를 골라야하므로, $O(N^{2})$이 된다. 하지만 PriorityQueue를 이용한다면 순간 최댓값을 찾는 과정이 O(logN)이 되어, 시간복잡도가 O(NlogN)이 된다. 그런데, 우선순위 큐를 어떻게 만들어야할까? 두 수의 곱이 최대가 되는 특별한 경우를 원하므로, 이..

자바 초보부터 B형까지 - 다양한 기준으로 정렬하기 위한 객체정렬 배우기

1. custom comparator 국어, 영어, 수학 점수를 포함한 학생 5명의 정보가 주어질때, 국어 점수를 기준으로 오름차순 정렬하는 방법은? 자바에서는 custom comparator로 직접 만들어야한다 반환 타입이 반드시 int여야하며, 정렬을 위한 객체 class를 타입으로 하는 1개의 인자를 가지고 있어야한다. 정렬을 위한 객체 뒤에 implements Comparable을 붙이고 public int compareTo 함수를 해당 class 안에 override annotator와 함께 적어준다. class Student implements Comparable { int kor, eng, math; public Student(int kor, int eng, int math){ this.ko..