인프런 커뮤니티 질문&답변

민표님의 프로필 이미지
민표

작성한 질문수

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

9-4.최대 수입 수케쥴 문제 질문있습니다!!

작성

·

151

0

9-4.최대 수입 수케쥴 문제 질문있습니다!!

import java.util.ArrayList;
import java.util.Collections;
import java.util.PriorityQueue;
import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();

        ArrayList<Point> arrayList = new ArrayList<>();
        for (int i = 0; i < N; i++) {
            int x = sc.nextInt();
            int y = sc.nextInt();
            arrayList.add(new Point(x, y));
        }
        Collections.sort(arrayList);
        PriorityQueue<Integer> priorityQueue = new PriorityQueue<>(Collections.reverseOrder());
        int tmp = arrayList.get(0).y;
        int answer = 0;
        for (int i = 0; i < arrayList.size(); i++) {
            if (arrayList.get(i).y < tmp) {
                answer += priorityQueue.poll();
                tmp = arrayList.get(i).y;
            }
            priorityQueue.add(arrayList.get(i).x);
            if (i == arrayList.size() - 1) {
                answer += priorityQueue.poll();
            }
        }

        System.out.println(answer);
        int j=0;
        
    }


}

class Point implements Comparable<Point> {
    int x;
    int y;

    Point(int x, int y) {
        this.x = x;
        this.y = y;
    }

    @Override
    public int compareTo(Point o) {
        return o.y-this.y;
    }
}

답이 잘 나오는데 왜 오답인지 궁금합니다 ㅠㅠ

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

민표님, 자바 알고리즘 문제 풀이와 관련해서 질문 주셨군요. 제공해주신 내용으로는 코드의 오류를 직접적으로 판단하기가 어렵습니다만, 일반적인 문제 해결 방법 몇 가지를 제시해 드리겠습니다.

  1. 로직 검증: 문제의 요구사항을 다시 한번 확인하시고, 해당 요구사항에 맞게 로직이 구현되었는지 체크해보세요.

  2. 코너 케이스 테스트: 문제의 예외 사항이나 경계 조건에 대해 코드가 정상적으로 동작하는지 테스트해보세요.

  3. 디버깅: 가능한 모든 입력 값에 대해 예상되는 출력과 실제 출력을 비교하여 어디에서 오류가 발생하는지 확인하시길 바랍니다.

코드의 정렬과 우선순위 큐의 사용 로직이 문제에 적합한지, 그리고 모든 케이스에 대해서 올바르게 동작하는지 체크가 필요합니다. 또한, 마지막에 남아 있는 priorityQueue의 요소를 모두 answer에 더하는 과정이 빠졌는지 확인해보세요.

더 자세한 도움이 필요하시면 강의 Q&A 섹션에 질문을 남기시거나, 인프런 고객센터에 문의해 보시길 권해드립니다.

정확한 답변을 드리지 못해 죄송합니다. 다만, 위의 방법으로 문제를 접근하시면 문제의 원인을 찾는 데 도움이 될 것입니다.

민표님의 프로필 이미지
민표

작성한 질문수

질문하기