-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
Queue 선언
21.01.27 10:55 작성 조회수 139
1
Queue<int[]> queue = new PriorityQueue<>(points.length,comp);
1 제너릭 int[] 부분이 어떻게 생겼는지 상상이 잘 가지 않습니다.
2. 객체 생성시 (points.length,comp) 부분에서 points.length 는 왜 지정하는것인가요?
답변을 작성해보세요.
0
푸샵맨 코딩스터디
지식공유자2021.01.28
안녕하세요.
PriorityQueue는 너무 자주 나와서 제가 강의를 하나 따로 만들었습니다.(코딩테스트 전 알아야할 개념문제입니다)
이 순서로 compareTo(), comparator(), PriorityQueue() 순서데로 공부하셔야 합니다.
1 제너릭 int[] 부분이 어떻게 생겼는지 상상이 잘 가지 않습니다.
=> int배열로 담은 것들을 비교하겠다는 말입니다.
무슨말이냐면 좌표값 {1,3},{-2,2}을 예제에서 줬잖아요.
여기서 1,3을 받아서 1*1+3*3 =10 , 두번째 값 -2,2를 받아서 -2*-2+2*2=8 이렇게 얻을려고 합니다.
그래서 int[]형태로 {1,3}을 담을 그릇을 준비하는겁니다.
잘 이해가 안가시면
맵을 예를들면 Map<key, value> 에서 (1,2), (2,10) 이렇게 맵이있는데 value 2, 10을 비교하고 싶다
그러면 아래처럼 Map을 담을 밥그릇을 준비하면됩니다.
Queue<Map.Entry<Integer, Integer>> queue = new PriorityQueue<>(comp);
또는
Queue<Map.Entry<Integer, Integer>> queue = new PriorityQueue<>( (a,b) -> a.getValue()==b.getValue() ? b.getKey().compareTo(a.getKey()) : a.getValue()-b.getValue());
2. 객체 생성시 (points.length,comp) 부분에서 points.length 는 왜 지정하는것인가요?
=> 생략해도 됩니다.
함수 형식에 맞춰준건데 옛날에는 필요했는데 지금은 안넣어도 됩니다.
더 궁금하시면 답글 남겨주세요.
표로 이해하실때ㄱ까지 알려드리겠습니다.
답변 1