GreatAlgorithm-Study / AlgorithmStudy

🌟알고리즘 대장정🌟
6 stars 4 forks source link

[2주차_목요일] 42626_더 맵게 #12

Closed baexxbin closed 2 months ago

baexxbin commented 2 months ago
baexxbin commented 2 months ago

🤔 시간복잡도 고려사항

💡 풀이 아이디어

예외조건 -1 출력 조건 잘보기

Jewan1120 commented 2 months ago

🤔 시간복잡도 고려사항

💡 풀이 아이디어

  1. 우선순위 큐를 이용해서 최솟값 2개를 꺼내 공식대로 음식을 섞은 후 다시 큐에 넣으면서 카운팅
  2. 더 이상 섞을 수 없을 경우에 카운트를 출력, 만약 큐의 최솟값이 K 미만이라면 -1을 출력
yeongleej commented 2 months ago

🤔 시간복잡도 고려사항

scoville 길이 <= 1,000,000 이므로 O(NlogN) or O(N) 생각

💡 풀이 아이디어

가장 맵지 않은 스코빌 지수를 계속 확인하고 가져와야 하므로 "우선위큐" 사용 우선순위 큐를 사용하면 O(logN)에 가져올 수 있음

KodaHye commented 2 months ago

🤔 시간복잡도 고려사항

💡 풀이 아이디어

  1. pq에 초기 배열 원소들 push
  2. while문을 통해 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복
    • pq.peek() >= K 이거나 pq.size() == 1이라면 break
    • poll연산을 통해 스코빌 지수가 가장 작은 값과 두번째로 작은 값을 뽑고 음식 만들고 다시 push
icegosimperson commented 2 months ago

🤔 시간복잡도 고려사항

💡 풀이 아이디어

yeahdy commented 2 months ago

🤔 시간복잡도 고려사항 알고리즘: 우선순위 큐 시간복잡도: 2 <= scoville <= 1,000,000 크기로 O(NlogN)

💡 풀이 아이디어 두 수를 합친 후 스코빌 배열에서 오름차순 정렬이 되어야 하기 때문에 우선순위 큐를 사용해서 두수를 빼내고, 합친 수를 다시 넣도록 함 우선순위 큐는 기본적으로 원소를 오름차순 정렬하기 때문에 큐의 첫번째 원소가 K 보다 크거나 같다면 스코빌 모든 음식의 스코빌 지수가 K 이상 임