반응형

이번 문제는 [프로그래머스 - 힙 - 더 맵게] 입니다!

문제 링크 :

https://programmers.co.kr/learn/courses/30/lessons/42626

 

코딩테스트 연습 - 더 맵게 | 프로그래머스

매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다. 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) Leo는 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞습니다. Leo가 가진

programmers.co.kr

작년 말 카카오 코딩테스트에 나왔던 문제같은데....못 풀었던 것 같은 기억이 납니다.

힙 자료구조를 사용하니 매우 쉬운 문제였는데요...문제는 이 자료구조를 사용해야겠다!라는 생각이 잘 떠오르지 않는다는겁니다. 항상 많이 풀어보고 고민해봐야 하는 것 같습니다.

 

1. 변수 : 

  1) answer : 답

  2) scoville : 각 음식의 맵기 정도가 담긴 배열(즉, List의 길이는 주어진 음식의 수를 나타냅니다.)

  3) a = 가장 scoville 지수가 낮은 음식

  4) b = 두번째로 scoville 지수가 낮은 음식

2. 방법 : 

  1) 음식 리스트 중 가장 scoville 지수가 낮은 음식의 scoville 지수가 K보다 작은지 판별한다.  

    1-1) False : 낮은 scoville 지수를 가진 두 음식을 음식 리스트에서뽑아낸 뒤(a, b), 새로운 음식의 scoville 지수를 음식을 List에 추가한다.

    1-2) True : answer를 return한다.

 

  * 이 때 만약 음식 List의 길이가 1개에 다다랐다면, -1을 return해야 합니다. 이상 끝-!

 

 

반응형

+ Recent posts