-
[java] 프로그래머스 더 맵게알고리즘 2023. 7. 5. 15:08
https://school.programmers.co.kr/learn/courses/30/lessons/42626
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
priorityqueue를 이용하면 된다.
q.peek()을 하면 가장 작은 수가 나오기 때문에 가장 작은 수가 k되기 전까지 계속 while문을 돌린다.
q.peek()이 k이하이고 q의 사이즈가 1개이하라면 -1를 출력한다.
import java.util.*; class Solution { public int solution(int[] scoville, int K) { int answer = 0; PriorityQueue<Integer> q = new PriorityQueue<>(); for(int i : scoville){ q.add(i); } int cnt=0; while(q.peek() < K){ if(q.size() <= 1) return -1; int min = q.poll(); int second = q.poll(); int sum = min + (second*2); q.add(sum); cnt++; } return cnt; } }
'알고리즘' 카테고리의 다른 글
[java] 프로그래머스 키패드 누르기 (0) 2023.07.06 [java] 프로그래머스 큰 수 만들기 (0) 2023.07.06 [java] 백준 숨바꼭질3 (0) 2023.07.05 [java] 백준 7562 : 나이트의 이동 (0) 2023.07.02 <문자열> 프로그래머스 신규 아이디 추천 java (0) 2023.06.18