반응형

2025/03/07 5

[프로그래머스/Java] 디스크 컨트롤(heap 문제) 풀이

프로그래머스 알고리즘 고득점 Kit의 heap 파트 문제 중 하나인 '디스크 컨트롤'을 Java를 사용해서 풀어보았다. https://school.programmers.co.kr/learn/courses/30/lessons/42627 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   자바에서는 heap 자체를 제공하지는 않지만, 기능이 같은 PriorityQueue를 제공한다. 따라서 PriorityQueue를 이용해서 heap을 구현해 줬다.  우선 일 정보를 담을 Job 클래스를 선언해줬다. 이때 Comparable을 implement 해줬는데, 그 이유는 CompareTo 메서드를 override..

[Heap] C언어로 Max Heap 구현하기

HEAP이란?Complete Binary Tree에 해당하는 자료구조로, Max Heap과 Min Heap이 있다. Complete Binary Tree라는 것은, Tree의 각 레벨 노드들이 왼쪽에서 오른쪽으로 채워지는 Binary Tree를 의미한다. 만약 아래의 왼쪽 그림에서 45 노드가 62의 왼쪽 자식이 아닌 오른쪽 자식 노드이거나, 24 노드가 존재하지 않았다면 왼쪽 그림을 Complete 하다고 볼 수 없을 것이다. 하지만 현재 왼쪽 그림은 level 0과 level1은 모든 자리가 채워져 있고, level2의 경우 왼쪽부터 채워져 있기 때문에 Complete Binary Tree라고 볼 수 있다.  Max Heap은 모든 부모노드가 자식노드들보다 큰 경우이고, Min Heap은 모든 부모노..

[프로그래머스/Java] 주식가격(스택/큐) 풀이

프로그래머스 알고리즘 고득점 Kit의 스택&큐 파트 문제 중 하나인 '주식가격' 문제를 Java로 풀어보았다. https://school.programmers.co.kr/learn/courses/30/lessons/42584 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  내가 푼 코드는 아래와 같은데, 풀면서 stack&queue를 활용하지 못하기도 했고, 시간복잡도도 O(N^2)로 효율적이지 않아서 다른 방법을 찾아보려 했다. class Solution { public int[] solution(int[] prices) { int len = prices.length; ..

[프로그래머스/Java] 다리를 지나는 트럭(스택/큐) 풀이

프로그래머스 알고리즘 고득점 Kit 스택&큐 파트 중 '다리를 지나는 트럭' 문제를 Java로 풀어보았다.https://school.programmers.co.kr/learn/courses/30/lessons/42583 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  on_bridge라는 이름의 queue를 만들어서 트럭이 다리 위에 올라가는 상황에서 queue에 트럭의 weight를 add 해줬다. add 해줄 때 cur_weight에 무게를 더해주고, poll 할 때 빼주어서, 현재 다리 위에 올라가 있는 트럭들의 무게의 합을 확인한다. 만약 add 해줄 요소가 없다면 0을 add 해줘서, 다리가 ..

[프로그래머스/Java] 프로세스(스택/큐) 풀이

알고리즘 고득점 Kit의 스택&큐 문제 중 하나인 '프로세스'를 자바로 풀어보았다. https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   우선 큐를 만들어서 인덱스를 모두 넣어주는 것으로 풀이를 시작했다. 그다음, 현재 남아있는 인덱스 중 최댓값을 찾는 것으로 초기 설정을 마쳤다. 그다음 while문을 통해서, 현재 poll 된 인덱스의 priority 값이 최댓값이 아니면 다시 넣어주고, 최댓값이라면 poll 된 채로 두고, cur_max를 그다음 max 값으로 바꾸는 작업을 반복한다. 현재..

728x90
반응형