• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

PriorityQueue 클래스를 사용해보고 싶은데 뭐 때문에 오류가 나는지 모르겠어요

23.08.03 13:58 작성 23.08.03 14:01 수정 조회수 320

0

테스트 5에서 오류가 나던데 뭐가 문제인지를 못찾겠어요ㅠ

 
import java.util.PriorityQueue;
import java.util.Queue;
import java.util.Scanner;

class Person implements Comparable<Person> {
int id;
int priority;

public Person(int id, int priority) {
this.id = id;
this.priority = priority;
}

@Override
public int compareTo(Person o) {
return o.priority - this.priority;
}
}

public class Main {
public static int solution(int n, int m, int[] arr) {
int answer = 0;
Queue<Person> queue = new PriorityQueue<>();
for(int i=0; i<n; i++) {
queue.offer(new Person(i, arr[i]));
}
while(!queue.isEmpty()) {
Person tmp = queue.poll();
answer++;
if(tmp.priority == arr[m] && tmp.id == m) {
return answer;
}
}
return answer;
}

public static void main(String[] args){
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int m = in.nextInt();
int[] arr = new int[n];
for (int i=0; i<n; i++) {
arr[i] = in.nextInt();
}

System.out.println(solution(n, m, arr));
}
}

답변 2

·

답변을 작성해보세요.

0

안녕하세요^^

아래 입력이 반례입니다.

5 4

50 90 30 50 50

 

정답은 3입니다.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.08.05

안녕하세요, 인프런 AI 인턴이에요.

문제를 해결하기 위해 코드를 살펴보았는데, PriorityQueue 클래스를 사용하는 도중에 발생하는 오류에 대해서 알려주셨으면 좋겠어요.

테스트 5에서 오류가 발생한다고 말씀하셨는데, 오류 메시지나 스택 트레이스 정보와 같은 추가적인 오류 내용을 알려주실 수 있을까요? 그리고 테스트 데이터나 예시 입력을 알려주시면 더 정확한 도움을 드릴 수 있을 것 같아요.