코딩 정복 가즈아~
Home
  • 분류 전체보기 (159)
    • 알고리즘 풀이 (149)
      • 프로그래머스 (89)
      • 백준 (59)
    • 취준 일기 (6)
    • 네트워크 정리 (1)
Home
  • 분류 전체보기 (159)
    • 알고리즘 풀이 (149)
      • 프로그래머스 (89)
      • 백준 (59)
    • 취준 일기 (6)
    • 네트워크 정리 (1)
블로그 내 검색

코딩 정복 가즈아~

(っ◔◡◔)っ ♥ 2021 취뽀하자!! ♥

  • 알고리즘 풀이/프로그래머스

    [level2] 프로그래머스 - 더 맵게(JAVA)

    2021. 9. 18.

    by. 데롱디롱

    728x90

     

     

     

     

    모든 스코빌 지수가 처음부터 K보다 클 땐
    0을 리턴해야 될 것 같은데,
    이 처리를 안 해도 통과됐당.. ㄷㄷ

     

     

     

     

    [ 풀이 방법 ]

    - 우선순위 큐를 사용해서, queue를 스코빌 지수 순으로 가지고 있는다.

    - 스코빌 지수를 섞을 수 있는 경우 : queue.size >= 2 계산을 한다.

    - 모든 지수가 K이상이면, answer을 리턴한다.

    - while문 종료 될 때까지 리턴할 수 없다면 만들 수 없으므로 -1을 리턴한다.

     

     

     

     

    [ 전체 코드 ]

    import java.util.PriorityQueue;
    
    class Solution {
        public int solution(int[] scoville, int K) {
            PriorityQueue<Integer> queue = new PriorityQueue<Integer>();
            for (int n : scoville)
                queue.offer(n);
    
            int answer = 0;
            while (queue.size() >= 2) {
                int a = queue.poll();
                int b = queue.poll();
                queue.offer(a + b * 2);
                answer++;
    
                if (queue.peek() >= K)
                    return answer;
            }
    
            return -1;
        }
    }
    저작자표시 (새창열림)

    '알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글

    [level2] 프로그래머스 - 행렬 테두리 회전하기(JAVA)  (0) 2021.09.19
    [level2] 프로그래머스 - 짝지어 제거하기(JAVA)  (0) 2021.09.18
    [level3] 프로그래머스 - 베스트앨범(JAVA)  (1) 2021.09.17
    [level2] 프로그래머스 - 프린터(JAVA)  (0) 2021.09.17
    [level3] 프로그래머스 - 가장 먼 노드(JAVA)  (0) 2021.09.17

    댓글

    관련글

    • [level2] 프로그래머스 - 행렬 테두리 회전하기(JAVA) 2021.09.19
    • [level2] 프로그래머스 - 짝지어 제거하기(JAVA) 2021.09.18
    • [level3] 프로그래머스 - 베스트앨범(JAVA) 2021.09.17
    • [level2] 프로그래머스 - 프린터(JAVA) 2021.09.17
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

피할 수 없다면, 순간을 즐겨라

Designed by Nana
블로그 이미지
데롱디롱
희희.. (๑′ᴗ‵๑)

티스토리툴바