728x90
list 이용
def mix(itm1,itm2):
n = itm1+itm2*2
return n
def solution(scoville, K):
answer = 0
while(len(scoville)>1):
if min(scoville) < K:
first = scoville.pop(scoville.index(min(scoville)))
second = scoville.pop(scoville.index(min(scoville)))
scoville.append(mix(first,second))
answer +=1
else:
return answer #섞는 최소 횟수 불가능 -> -1
if scoville[0] < K:return -1
else: return answer
정확성은 좋지만 효율성은 떨어지는 아이…
시간으로 때려박는 코드 ㅠㅠ(자료 구조의 소중함을 깨닫는 시간)
Heap 이용
import heapq
def mix(itm1,itm2):
n = itm1+itm2*2
return n
def solution(scoville, K):
answer = 0
heapq.heapify(scoville)
while(len(scoville)>1):
if scoville[0] < K:
first =heapq.heappop(scoville)
second =heapq.heappop(scoville)
heapq.heappush(scoville, mix(first,second))
answer +=1
else:
return answer #섞는 최소 횟수 불가능 -> -1
if scoville[0] < K:return -1
else: return answer
어느 상남자의 코드
from heapq import heapify, heappush, heappop
def solution(scoville, K):
heapify(scoville)
for i in range(1000000):
try:
heappush(scoville, heappop(scoville)+(heappop(scoville)*2))
if scoville[0] >= K: return i+1
except:
return -1
걍 때려박아버리네ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
728x90
'코테준비 > Programmers' 카테고리의 다른 글
타겟넘버(DFS이용) (0) | 2022.09.19 |
---|---|
소수 찾기(순열 이용) (0) | 2022.09.19 |
멀쩡한 사각형(최대공배수 이용) (0) | 2022.09.19 |
124나라(3진법이용) (0) | 2022.09.19 |
행렬 테두리 회전하기(copy매소드) (0) | 2022.09.19 |