Closed baexxbin closed 2 months ago
🤔 시간복잡도 고려사항
💡 풀이 아이디어
예외조건
-1 출력 조건
잘보기
🤔 시간복잡도 고려사항
O(nlogn)
💡 풀이 아이디어
우선순위 큐
를 이용해서 최솟값 2개를 꺼내 공식대로 음식을 섞은 후 다시 큐에 넣으면서 카운팅큐의 최솟값이 K 미만이라면 -1을 출력
🤔 시간복잡도 고려사항
scoville 길이 <= 1,000,000 이므로 O(NlogN) or O(N) 생각
💡 풀이 아이디어
가장 맵지 않은 스코빌 지수를 계속 확인하고 가져와야 하므로 "우선위큐" 사용 우선순위 큐를 사용하면 O(logN)에 가져올 수 있음
🤔 시간복잡도 고려사항
add
, poll
연산은 O(1)으로 할 수 있음💡 풀이 아이디어
push
while
문을 통해 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복
pq.peek() >= K
이거나 pq.size() == 1
이라면 break
poll
연산을 통해 스코빌 지수가 가장 작은 값과 두번째로 작은 값을 뽑고 음식 만들고 다시 push
🤔 시간복잡도 고려사항
💡 풀이 아이디어
우선순위 큐
를 이용하여 peek로 현재값과 K 비교 후 answer 증가🤔 시간복잡도 고려사항 알고리즘: 우선순위 큐 시간복잡도: 2 <= scoville <= 1,000,000 크기로 O(NlogN)
💡 풀이 아이디어 두 수를 합친 후 스코빌 배열에서 오름차순 정렬이 되어야 하기 때문에 우선순위 큐를 사용해서 두수를 빼내고, 합친 수를 다시 넣도록 함 우선순위 큐는 기본적으로 원소를 오름차순 정렬하기 때문에 큐의 첫번째 원소가 K 보다 크거나 같다면 스코빌 모든 음식의 스코빌 지수가 K 이상 임