코딩테스트 (Coding Test)

[프로그래머스]- 기능개발

zzoming 2023. 11. 16. 01:49

문제)

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

입력 

progresses = [93, 30, 55] , speeds = [1,30,5] 

출력

[2,1] 

 

풀이)

문제이해 

첫 번째 기능은 93% 가 완료되어 있고 하루에 1%씩 작업이 가능하므로 7일간 작업 후 배포가 가능하다. 

두 번째 기능은 30% 가 완료되어 있고 하루에 30% 씩 작업이 가능하므로 3일간 작업 후 배포가 가능하다. 

하지만 이전 첫 번째 기능이 아직 완성된 상태가 아니기 때문에 첫 번째 기능이 배포되는 7일째 배포된다.

세 번째 기능은 55% 가 완료되어 있고 하루에 5%씩 작업이 가능하므로 9일간 작업 후 배포가 가능하다. 

 

따라서 7일째 2개의 기능, 9일째 1개의 기능이 배포되므로 [2,1]이 출력된다.

def solution(progresses , speeds) :
	
    answer = []
    count = 0 
    time = 0
    
    while len(progresses) > 0 :
    
    	if progresses[0] + speeds[0] * time >= 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