오늘도 역시 예전에 풀었던 코딩테스트 문제들이다. 다음 주는 파이썬으로 웹다루기 주간이다.
import heapq
def solution(scoville, K):
answer = 0
h = []
for x in scoville:
heapq.heappush(h, x) # 최소힙
while (h[0] < K):
if(len(h) > 1):
heapq.heappush(h, heapq.heappop(h) + heapq.heappop(h) * 2)
else:
return -1
answer += 1
return answer
from collections import defaultdict
def solution(tickets):
answer = []
v = defaultdict(list)
def DFS(x):
while v[x]:
DFS(v[x].pop(0))
if not v[x]:
answer.append(x)
return
for i, j in tickets:
v[i].append(j)
for i, j in v.items():
v[i].sort()
DFS('ICN')
return list(reversed(answer))
def solution(N, number):
s = [set() for x in range(8)]
for i, x in enumerate(s, start=1):
x.add(int(str(N)*i))
for i in range(0, len(s)):
for j in range(0, i):
for op1 in s[j]:
for op2 in s[i-j-1]:
s[i].add(op1+op2)
s[i].add(op1-op2)
s[i].add(op1*op2)
if op2 != 0:
s[i].add(op1 // op2)
if number in s[i]:
answer = i+1
break
else:
answer = -1
return answer