Algorithm

[코딩테스트 /Python] 프로그래머스 기능 개발

재온 2023. 5. 4. 13:06

문제

1. 진도 100일 때 서비스에 반영 가능 

2. 각 기능의 개발 속도는 모두 다르고, 앞 서비스가 완료되어야 뒤 서비스도 반영 가능 

3. progresses: 작업의 진도 / speed : 개발 속도 , 하루에 얼마나 작업할 수 있는지 

4. 각 배포마다 몇 개의 기능이 배포 되는지를 return 

 

 

풀이 

시도하다가 만것

def solution(progresses, speeds):
    #일단 dictionary 만들어놓기 
    dic = dict(zip(progresses, speeds))
    day=[]
    for key, value in dic.items():
        
        if key+value*day = 100 

    answer = []
    
    return answer

처음에는 단순하게 문제 의미만 파악하면서 풀어보려고 했는데 이렇게 진행될 경우, 날짜를 무한으로 돌릴 수도 없고 .. 

이렇게 접근하면 안된다. 큐/ 스택 범주에 있는 문제니까 다시 고민=> while 문 사용, 큐 스택 

 

def solution(progresses, speeds):
    answer =[]
    #우선 작업 리스트 하나씩 100퍼 만들기 -> 달성하면 cnt 저장하고 방빼
    while progresses:
        cnt =0
        while progresses and progresses[0]>=100:
            cnt+=1
            progresses.pop(0)
            speeds.pop(0)
        progresses = [progresses[i]+speeds[i] for i in range(len(progresses))]

        if cnt:
            answer.append(cnt)
    return answer

 

 

300x250