호기심 많은 분석가
[프로그래머스] 스택_큐 - 기능개발 (Python) 본문
import math
def solution(progresses, speeds):
answer = []
while progresses :
result = 0
time = math.ceil((100-progresses[0])/speeds[0])
progresses = [progresses[i]+time*speeds[i] for i in range(len(progresses))]
for i in range(len(progresses)) :
if progresses[i] >= 100 :
result += 1
else : break
answer.append(result)
for _ in range(result) :
progresses.pop(0)
speeds.pop(0)
return answer
여러 번 풀면서도 시간이 오래 걸리곤 했던 친구다. 조건이 여러 가지라 구현하는데 시간이 소요됐다.
우선 첫 작업이 끝나기 전까지는 다음 작업들도 배포될 수 없으므로, 첫 작업이 끝나는 데 걸리는 시간을 구한다. 그다음 작업이 끝나지 않은 원소가 나올 때까지 for문을 돌려주고 몇 개의 원소를 거쳤는 지를 result에 저장하여 answer에 append 해준다. 이미 작업이 끝난 원소들은 다룰 필요가 없으므로 pop을 이용해서 제거해줌. 이때 speed도 반드시 제거해줘야한다. (이거 때문에 조금 애먹음)
그 작업들을 progresses의 원소가 없어질 때까지 반복하면 문제가 해결됨을 볼 수 있다.
'Coding > Coding Test & Algorithm' 카테고리의 다른 글
[프로그래머스] 월간 코드 챌린지 시즌1 - 3진법 뒤집기 (Python) (2) | 2021.07.02 |
---|---|
[프로그래머스] 2018 KAKAO BLIND RECRUITMENT - [1차] 뉴스 클러스터링 (3) | 2021.06.30 |
[프로그래머스] 완전탐색 - 모의고사 (Python) (0) | 2021.06.28 |
[프로그래머스] 완전탐색 - 소수 찾기 (Python) (0) | 2021.06.28 |
[프로그래머스] 완전탐색 - 카펫 (Python) (0) | 2021.06.28 |