본문 바로가기

프로그래머스 알고리즘 문제/Level 2

프로그래머스 Level 2 - 기능개발

내 정답:

 

꼼수를 좀 썼다.

def solution(progresses, speeds):
    baepo = []
    answer = []
    for i in range(len(progresses)):
        day = (99.9 - progresses[i]) // speeds[i] + 1
        baepo.append(day)
    while baepo:
        baepo_now = baepo.pop(0)
        count = 1
        while baepo and baepo_now >= baepo[0]:
            baepo.pop(0)
            count += 1
        answer.append(count)
    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]

 

def solution(progresses, speeds):
    print(progresses)
    print(speeds)
    answer = []
    time = 0
    count = 0
    while len(progresses)> 0:
        if (progresses[0] + time*speeds[0]) >= 100:
            progresses.pop(0)
            speeds.pop(0)
            count += 1
        else:
            if count > 0:
                answer.append(count)
                count = 0
            time += 1
    answer.append(count)
    return answer