coville: Leo가 가진 음식의 스코빌 지수를 담은 배열
K: 원하는 스코빌 지수
OneTwo: 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2)
Three: 세 번째로 맵지 않은 음식의 스코빌 지수
answer: 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 섞어야 하는 최소 횟수
h: scoville을 heap을 이용해 오름차순으로 정렬한 배열
처음에 scoville를 heap에 삽입해서 오름차순으로 정렬했다.
그 다음 반복문을 이용해서 오름차순으로 정렬한 배열(h)의 길이가 2이하가 되기전까지 원하는 스코빌 지수가 나올때가 음식을 섞는다. 음식을 섞을 때마다 answer에 +1을 해준다.
만약 섞은 음식과 섞고나면 가장 스코빌지수가 작아지는 음식(세번째로 heap에서 꺼낸 음식)의 스코빌 지수가 둘 다K보다 크면 answer을 리턴해주고 아니면 다시 h에 삽입한다.
h의 길이가 2이하가 되면 그 두개의 음식을 섞어주고 answer에 +1을 해준다.
섞어준 음식의 스코빌지수가 K보다 크면 answer 리턴, 그렇지 않으면 모든 음식의 스코빌 지수를 K 이상으로 만들 수 없는 경우이므로 -1을 리턴한다.
내 코드보다 While문 하나를 반복해서 if문들을 이용해 답을 내는게 효율성이 더 좋은 것 같음. 너무 복잡하게 생각하지 말아야 겠음.
🔗프로그래머스 - 더 맵게
https://programmers.co.kr/learn/courses/30/lessons/42626