기능개발

메캉·2022년 7월 17일
0

알고리즘 👑

목록 보기
5/11

URL

https://school.programmers.co.kr/learn/courses/30/lessons/42586#

개선할 점

  1. left = right 코드 조건을 전체에 두어 고생 함
    • [10 , 9 , 7] 인 작업 기간이라면 [3] 로직이 성립되었지만
    • [10, 7, 9] 인 작업 기간이라면 [3] 이 아닌 [2, 1]로 나왔기 때문

내 코드

from math import ceil
from collections import deque

def solution(pg, sp):
    answer = []
    d = deque()
    for p, s in zip(pg, sp):
        v = ceil((100-p)/s)
        d.append(v)
    
    left = d.popleft()
    cnt = 1
    while d:
        right = d.popleft()
        if left >= right:
            cnt+=1
        else:
            answer.append(cnt)
            cnt = 1
            left = right
    answer.append(cnt)
    
    return answer

가이드 코드

def solution(progresses, speeds):
    Q=[]
    for p, s in zip(progresses, speeds):
        if len(Q)==0 or Q[-1][0]<-((p-100)//s):
            Q.append([-((p-100)//s),1])
        else:
            Q[-1][1]+=1
    return [q[1] for q in Q]

0개의 댓글