▶문제설명
코딩테스트 연습 > 스택/큐 > 기능개발
▶ 설계
0%로 시작하고 하루에 1%를 채울 수 있는 작업이 있다면 100일이 필요하다.
그러므로 100번 반복하는 루프문 안에서 구현을 이어나가면 되겠다.
완료된 작업이 있는지 확인하기 위한 구간을 begin과 end로 나타낸다. [begin, end)
매일 begin에서부터 연속되어 있는 진행률 100% 이상의 작업들을 확인하고 answer에 추가한 뒤, begin을 업데이트 해주자.
▶ 구현
하루가 지날 때마다 입력으로 주어진 모든 작업들을 주어진 속도에 맞추어 진행률을 업데이트했다.
그리고 begin에 위치한 작업이 100% 이상이 된 경우에 begin에 위치한 작업에서부터 차례대로 보면서 연속되어있는 100%이상의 진행률을 가진 작업들의 개수를 카운트했다.
answer에 카운팅한 수(cnt)를 push_back 해준 뒤, begin에 cnt만큼을 더한다.
그러면 begin은 아직 진행률이 100% 미만인 작업들 중 가장 앞에 위치한 작업의 위치가 된다.
그렇게 모든 작업들이 100% 진행률 이상이 될 때까지 반복하여 문제를 해결했다.
'■ 알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 소수 찾기 (0) | 2019.12.14 |
---|---|
[프로그래머스] 다리를 지나는 트럭 (0) | 2019.12.13 |
[프로그래머스] 여행경로 (0) | 2019.12.12 |
[프로그래머스] 땅따먹기 (0) | 2019.01.03 |
[프로그래머스] 완주하지 못한 선수 (0) | 2018.12.29 |