ygreenb
yellowgreenblue
ygreenb
전체 방문자
오늘
어제
  • TIL (130)
    • Algorithm & Data Structure (70)
      • 이론 (4)
      • 프로그래머스 (54)
      • 백준 (12)
    • JAVA (4)
    • Android Studio (9)
    • Database (1)
    • WEB (25)
      • HTML+CSS (7)
      • Javascript (5)
      • React (11)
      • Django (1)
      • Node.js (1)
    • Computer Vision (13)
    • Git (8)

블로그 메뉴

  • HOME
  • TAG
  • GITHUB

공지사항

인기 글

태그

  • reactjs
  • React
  • git bash
  • greedy
  • Android
  • DP
  • 코틀린
  • PriorityQueue
  • Comparator
  • 해시
  • HashMap
  • 프로그래머스 Lv.2
  • getOrDefault
  • kotiln
  • 프로그래머스
  • git
  • BFS
  • Queue
  • 스택/큐
  • compareTo()
  • stack
  • 백준
  • 깃허브
  • 깃
  • 안드로이드
  • entrySet
  • java
  • dfs
  • sort
  • Arrays.sort()

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ygreenb

yellowgreenblue

Algorithm & Data Structure/프로그래머스

[Java] 프로그래머스 Lv.2 : 더 맵게

2022. 3. 13. 07:54

https://programmers.co.kr/learn/courses/30/lessons/42626

 

코딩테스트 연습 - 더 맵게

매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같

programmers.co.kr

 

풀이

우선순위 큐(Priority Queue)를 사용한다.

낮은 숫자가 우선순위인 int 형 우선순위 큐를 선언하고 큐에 스코빌지수를 넣어준다.

첫번째 heap의 요소가 K이상이 될 때까지 반복문을 돌린다.

  • 앞의 두 음식을 꺼내(pop) 새로운 음식으로 만들어 다시 heap에 넣어준다.(pull)
  • 가장 앞의 음식의 스코빌 지수가 K이상이 되면 break
  • 만약 heap의 요소가 1개일떄는 -1을 return해준다.
import java.util.PriorityQueue;
import java.util.Collections;

class Solution {
    public int solution(int[] scoville, int K) {
        int answer = 0;
        //낮은 숫자가 우선 순위인 int 형 우선순위 큐 선언
        PriorityQueue<Integer> heap = new PriorityQueue<>();
        // 큐에 스코빌지수 넣음
        for(int s : scoville){
            heap.add(s);
        }

        while(heap.peek()<K){
            // 앞의 두 음식을 섞어서(pop) 새롭게 만들어 저장
            heap.add(heap.poll() + heap.poll()*2);
            answer++; // 섞은 횟수 증가

            // 가장 앞의 음식의 스코빌 지수가 K이상이 되면 break
            if(heap.peek() >= K) break;
            if(heap.size()==1 && heap.peek()<K) return -1;
        }

        return answer;
    }
}
저작자표시 (새창열림)

'Algorithm & Data Structure > 프로그래머스' 카테고리의 다른 글

[Java] 프로그래머스 Lv.2 : 카펫  (0) 2022.03.13
[Java] 프로그래머스 Lv.2 : H-Index  (0) 2022.03.13
[Java] 프로그래머스 Lv.2 : 주식가격  (0) 2022.03.11
[Java] 프로그래머스 Lv2 : 프린터  (0) 2022.03.11
[Java] 프로그래머스 Lv.2 : 위장  (0) 2022.03.09
    'Algorithm & Data Structure/프로그래머스' 카테고리의 다른 글
    • [Java] 프로그래머스 Lv.2 : 카펫
    • [Java] 프로그래머스 Lv.2 : H-Index
    • [Java] 프로그래머스 Lv.2 : 주식가격
    • [Java] 프로그래머스 Lv2 : 프린터
    ygreenb
    ygreenb
    개발공부기록장

    티스토리툴바