아이디어 : 동시에 일단 개발을 시작한 후에 배포 순서대로 차례로 고려하면서 일수를 계산하는 것이므로, 각각 개발에 걸리는 시간을 먼저 파악해야 할 것 같다.
import math
def solution(progresses, speeds):
dates = []
answer = []
for i in range(len(progresses)):
date = (100-progresses[i])/speeds[i]
dates.append(math.ceil(date))
completed = [False]*len(dates)
flag = 0
count = 0
for i in range(len(dates)):
if flag ==0:
count=1
flag = dates[i]
completed[i]==True
elif dates[i]-flag <=0:
completed[i]==True
count+=1
elif dates[i]-flag>0:
answer.append(count)
count=1
dates = [x-flag for x in dates]
flag = dates[i]
answer.append(count)
return answer
+250819
def solution(progresses, speeds):
answer = []
temp_idx = 0
while progresses:
count = 0
progresses = [progresses[i]+speeds[i] for i in range(len(progresses))]
if progresses[0]<100:
continue
for idx,progress in enumerate(progresses):
if progress>=100:
count+=1
else:
temp_idx = idx
break
answer.append(count)
progresses = progresses[temp_idx:]
return answer
-> 이렇게 하면 테스트케이스만 통과하고 실제로는 거의 다 틀린다.
'✨ 공부 기록 > 알고리즘 & 코딩테스트' 카테고리의 다른 글
| [프로그래머스 lv 2] 프로세스 (스택/큐) (0) | 2025.02.28 |
|---|---|
| [프로그래머스 lv 2] 올바른 괄호 (스택/큐) (1) | 2025.02.28 |
| [프로그래머스 lv 2] 게임 맵 최단거리(깊이/너비 우선 탐색(DFS/BFS)) (0) | 2025.02.27 |
| [프로그래머스 lv 3] 네트워크(깊이/너비 우선 탐색(DFS/BFS)) (0) | 2025.02.26 |
| [프로그래머스 lv 2] 타겟 넘버(깊이/너비 우선 탐색(DFS/BFS)) (0) | 2025.02.26 |