Lv 2. 더 맵게

2024. 7. 10. 14:25·Algorithm & Data Structures/Programers

 

코드 흐름

  • PriorityQueue 를 통해 우선순위를 오름차순으로 세팅하여 입력값의 스코빌 지수를 모두 pq안에 넣는다.
  • 자동으로 pq에서는 오름차순으로 정렬된 상태이기에 pq.poll() 한다면 최저값이 나오고 이를 pq.peek()시에 스코빌지수가 K이하이고 pq의 사이즈가 2개 이상일때만 섞을수 있기에 조건문을 달아 while루프를 선언한다.
  • 위 과정을 통해 pq사이즈가 2개 이하이거나 스코빌 최소지수가 k 이상이면 루프가 멈추기에 문제에서 알려준 대로 스코빌 지수를 더하고 곱하여 다시 pq에 넣는다. 그리고 그과정은 섞는과정이니 answer++ 해준다.
  • 최종적으로 남은 pq에 peek()의 스코빌지수가 k 이상이면 answer을 리턴한다. 아니라면 -1을 리턴하여 모든 음식의 스코빌 지수를 k이상으로 만들지 못했음을 리턴한다.
import java.util.*;

class Solution {
    public int solution(int[] scoville, int K) {
        int answer = 0;
        Queue<Integer> pq = new PriorityQueue<>();
        for(int s : scoville){
            pq.add(s);
        }
        while(pq.peek() < K && pq.size()>=2){
            answer++;
            int first = pq.poll();
            int second = pq.poll();
            pq.add(first+(second*2));
        }
        return pq.peek() >= K ? answer:-1;
    }
}

 

여태 풀어본 문제중에 가장 빠르고 깔끔하게 풀렸던 문제다. 기부니가 좋다.^^^^^^^^^^^^^

'Algorithm & Data Structures > Programers' 카테고리의 다른 글

Lv 2. 택배상자  (1) 2024.07.17
Lv 2. 스킬트리  (0) 2024.07.14
Lv 2. 주식가격  (0) 2024.07.09
Lv 2. 디펜스게임  (0) 2024.07.09
Lv 2. 땅따먹기  (0) 2024.07.05
'Algorithm & Data Structures/Programers' 카테고리의 다른 글
  • Lv 2. 택배상자
  • Lv 2. 스킬트리
  • Lv 2. 주식가격
  • Lv 2. 디펜스게임
Geisha
Geisha
개발 일기
  • Geisha
    Geisha
    Geisha
  • 전체
    오늘
    어제
    • 분류 전체보기 (326) N
      • Algorithm & Data Structures (246) N
        • BOJ (104) N
        • SWEA (1)
        • Programers (137)
        • Data Structures (3)
      • DB (27) N
        • SQL (21) N
        • RDBMS (2)
      • Java (1)
        • Class (1)
      • Spring (5)
        • Spring MVC (1)
        • Annotations (1)
      • CS (36)
        • 운영체제 (13)
        • 네트워크 (5)
      • Tool (6)
        • Git (5)
        • AWS (1)
      • Project (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Dijkstra
    백준
    후위순회
    binarySearch
    골드
    이분탐색
    baekjoon
    전위순회
    BFS
    스택
    programmers
    dfs
    알고리즘
    다익스트라
    PriorityQueue
    유니온파인드
    경로압축
    구현
    Java
    백트래킹
    Union-Find
    투포인터
    algorithm
    SQL
    Stack
    DynamicProgramming
    동적계획법
    프로그래머스
    unionfind
    dp
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
Geisha
Lv 2. 더 맵게
상단으로

티스토리툴바