programmers.co.kr/learn/courses/30/lessons/42586
def solution(progresses, speeds):
# 배포 날 몇 개의 기능 배포되는지 list
answer = []
# 작업의 개수가 있을경우 반복
while len(progresses) > 0:
# 람다를 통해 작업 진도와 속도를 더해서 진행되는 작업률을 표현
# (이때, 100이 넘어가도 계속 진행했습니다. 왜냐하면 100이 넘어가면 완성이 된거기때문에 binary_class로 분류)
progresses = list(map(lambda x,y:x+y, progresses, speeds))
count_index = []
# 완성된 작업 진도의 개수만큼 for문 반복, 이때 작업 우선순위 앞에부터 확인
for i in range(len(progresses)):
# 앞에서부터 작업이 완성(작어 진도 100이상)이 있다면, count_index에 완성 index추가(완성된 작업물의 index까지만 append)
if progresses[i] >= 100:
count_index.append(i)
# 만약 앞에서부터 작업이 완성되다가 완성되지 않은게 있다면 break
else:
break
# 완성작업물이 있다면 몇개 배포할 수 있는지 answer에 append
if len(count_index) > 0:
answer.append(len(count_index))
#배포 개수 counting 후 작업 진도와 작업 속도에서 각 index를 빼줍니다.
# 이때 앞 index부터 뺀다면, 뒤 인덱스에 변화가 있기때문에 뒤 인덱스부터 빼주었습니다.
for j in count_index[::-1]:
progresses.pop(j)
speeds.pop(j)
return answer
print(solution([93, 30, 55],[1, 30, 5]))
print(solution([95, 90, 99, 99, 80, 99],[1, 1, 1, 1, 1, 1]))
[out]
[2,1]
[1,3,2]
'2021 > 코딩테스트' 카테고리의 다른 글
[프로그래머스] Lv.2 - 더 맵게 (Python) (0) | 2021.01.04 |
---|---|
[프로그래머스] Lv.2 - 소수찾기 (Python) (0) | 2021.01.02 |
[프로그래머스] Lv.2 - H-Index (Python) (0) | 2021.01.01 |
[프로그래머스] Lv.2 - 다리를 지나는 트럭 (Python) (0) | 2021.01.01 |
[프로그래머스] Lv.2 - 프린터 (Python) (0) | 2020.12.29 |
댓글