프로그래머스

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

small-j 2021. 7. 19. 16:13

문제 출처

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

 

풀이

작업이 어느 진도까지 진행됬는지를 보여주는 progresses배열과 각 작업속도를 알려주는 speeds배열이 주어집니다. 

작업은 전체 100%까지 진행되고 가장 먼저 끝내야하는 우선순위가 높은 작업 순서로 정렬되어 제공됩니다.

 

우선순위가 높은 순서부터 작업을 배포해야하기 때문에 뒤의 작업들은 앞의 우선순위가 높은 작업이 완료되기 전까지는 배포가 불가능합니다. 그리고 이미 마무리되어 있던 뒤의 작업은 앞의 작업과 함께 배포될 수 있습니다. 

 

간단히 생각해서 우선순위가 높은 작업이 끝나는 날짜를 구한 뒤, 해당 날짜보다 작업의 마무리 일이 늦은 작업전까지는 모두 함께 배포할 수 있습니다.

따라서 progresses배열의 앞에서부터 작업이 끝나는 날짜를 구해서 Max값을 저장해준 뒤 순차적으로 배열을 돌아주면서 끝나는 날짜가 더 늦은 날짜가 오기 전까지 수를 세주었습니다.

끝나는 날짜가 더 늦은 날짜를 만나면 결과 배열에 배포한 갯수를 넣어주고 다시 더 늦은 날짜로 Max값을 갱신해준 뒤 같은 과정을 반복해주어 해결했습니다.

 

코드

 

small-j/Algorithm

Contribute to small-j/Algorithm development by creating an account on GitHub.

github.com