알고리즘/level2

[javascript] 기능개발

민트초코수장 2021. 1. 15. 00:54

1. 문제

 

 


 

2. 문제 해석

 

작업 진도를 가진 배열 progresses와 진도율을 가진 배열 speeds가 있다.

100프로가 넘으면 배포가 가능하지만 앞에 있는 순서대로 배포가 가능하다.

그래서 앞의 작업이 끝나야 같이 배포가 가능하고 같은 날에 배포되는 작업들의 갯수를 return값으로 보낸다.

 


 

3. 문제 풀이

 

 

처음엔 for문과 while문을 섞어서 풀었지만 시간이 많이 걸리는 것을 확인했고

시간복잡도가 생각났다. 그래서 다른 방법을 생각해보았다.

처음엔 shift가 pop보다 오래 걸린다는 생각을 가지고 안썻지만 이번엔 써보았다.

 

 

speeds의 갯수대로 순서대로 작업을 진행한다.

그리고 100이 넘을 경우 progresses, speeds 배열의 앞을 삭제해준다. 

그리고 count를 세어 총 횟수를 result배열에 넣어준다.

 

이를 반복하면 된다.

확실히 실행속도가 빨라졌다.

 

끝나고 다른 사람들의 풀이를 보던 중에 거의 흡사한 풀이가 있었는데 기분이 좋았다. 

 

 


 

4. 프로그래머스 

 

programmers.co.kr/learn/courses/30/lessons/42586?language=javascript

 

코딩테스트 연습 - 기능개발

프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는

programmers.co.kr

 

반응형