프로그래머스/LEVEL 2

더 맵게

GenieLove! 2021. 4. 11. 21:38
728x90
반응형

Java

import java.util.*;
class Solution {
    public int solution(int[] scoville, int K) {
        PriorityQueue que = new PriorityQueue();
        int count = 0;
        
        for(int i : scoville)   que.add(i);
        
        while((int)que.element() < K){
            if(que.size() <= 1){
                count = -1;
                break;
            }
            int first = (int)que.poll();
            int second = (int)que.poll();
            que.add((first + (second * 2)));
            count++;
        }
        
        return count;
    }
}

Python

import heapq
def solution(scoville, K):
    count = 0
    heapq.heapify(scoville)#scoville을 heap으로 변한
    
    while scoville[0] < K:
        if len(scoville) <= 1:
            return -1
        first = heapq.heappop(scoville)#가장 작은 요소 추출 후 삭제
        second = heapq.heappop(scoville)
        scoville.append(first + second * 2)
        count += 1
    
    
    return count
    
    
#     시간 복잡도 탈락
#     count = 0
    
#     while(min(scoville) < K):
#         if len(scoville) <= 1:
#             count = -1
#             break
#         first = min(scoville)
#         scoville.remove(min(scoville))
#         second = min(scoville)
#         scoville.remove(min(scoville))
#         scoville.append(first + second * 2)
#         count += 1
        
    
#     return count
728x90
반응형

'프로그래머스 > LEVEL 2' 카테고리의 다른 글

조이스틱  (0) 2021.04.14
큰 수 만들기  (0) 2021.04.14
괄호 변환  (0) 2021.04.11
메뉴 리뉴얼  (0) 2021.04.08
가장 큰 수  (0) 2021.04.08