작성 중인 글이 10개가 넘었다,, 어서 정리해서 마무리해야지
오늘은 오랜만에 알고리즘으로 데려왔다 :-)
priorities
: 현재 대기목록에 있는 문서의 중요도가 순서대로 담긴 배열
location
: 내가 인쇄를 요청한 문서의 현재 대기목록에서의 위치
def solution(priorities, location):
answer = 0
m= max(priorities)
while True:
m= max(priorities)
c= priorities.pop(0)
# 현재문서 인쇄
if c==m:
answer+=1
if location==0:
break
else:
location-= 1
# 현재문서 -> 대기목록 마지막으로
else:
priorities.append(c)
location= location-1 if location !=0 else len(priorities)-1
return answer
bridge_length
: 다리 길이
weight
다리가 견딜 수 있는 무게
truck_weights
: 트럭별 무게
def solution(bridge_length, weight, truck_weights):
answer = 0
bridge= [0] *bridge_length
tot_w= 0
while truck_weights:
tot_w-= bridge.pop(0)
if tot_w + truck_weights[0] <= weight:
a= truck_weights.pop(0)
bridge.append(a)
tot_w+= a
else:
bridge.append(0)
answer+= 1
return answer+bridge_length
해결하는 데 매우 오래 걸렸던 문제 (3일 걸렸음ㅎ)
progresses
: 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열
speeds
: 각 작업의 개발 속도가 적힌 정수 배열
def solution(progresses, speeds):
answer = []
day= [] # 기능별 완료까지 걸리는 일수
for i in range(len(progresses)):
temp= (99-progresses[i]) // speeds[i] + 1
day.append(temp)
while len(day) > 0:
cnt = 1
a = day.pop(0)
day2 = day.copy()
for i in range(len(day)):
if a >= day[i]:
cnt += 1
day2.pop(0)
else:
break
answer.append(cnt)
day = day2.copy()
return answer
progresses
: 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열
speeds
: 각 작업의 개발 속도가 적힌 정수 배열
def solution(n):
answer = ''
num= [1, 2, 4]
while n>0:
temp= num[(n-1)%3]
answer+= str(temp)
n= (n-1)//3
return answer[::-1]