///
Search

더 맵게

항해 TIL

더 맵게
오답 코드 (1st try)
import heapq # heappush # heapify # heappop def solution(scoville, K): # help(heapq) cnt = 0 heapq.heapify(scoville) # print(scoville) while scoville: cnt += 1 # print(cnt) lowest_hot = heapq.heappop(scoville) second_hot = scoville[0] scoville_rate = lowest_hot + (2 * second_hot) heapq.heappop(scoville) heapq.heappush(scoville, scoville_rate) if scoville[0] >= K: # print(scoville[0]) break return cnt
Python
복사
문제점:
첫 번째 요소만 K 이상인지 확인하고 있음
모든 음식의 스코빌 지수가 K 이상인지 확인하지 않음
섞는 횟수(cnt) 증가 타이밍이 부적절함
개선 방향:
모든 원소가 K 이상인지 확인하는 로직 추가
정확한 조건에 따라 섞는 횟수 증가
종료 조건 명확히 설정
조건 충족 시 루프를 조기 종료하는 로직 추가
import heapq def solution(scoville, K): # help(heapq) cnt = 0 heapq.heapify(scoville) # print(scoville) # 최소 숫자가 K를 넘어가면 배열 전체 숫자가 다 넘어감 while scoville[0] < K: if len(scoville) < 2: return -1 # print(cnt) lowest_hot = heapq.heappop(scoville) second_hot = heapq.heappop(scoville) scoville_rate = lowest_hot + (2 * second_hot) heapq.heappush(scoville, scoville_rate) cnt += 1 return cnt
Python
복사
놓친 부분 : 모든 음식의 스코빌 지수를 K 이상으로 만들 수 없는 경우에는 -1을 return.