본문 바로가기

프로그래머스 코딩테스트 연습 Lv1

Lv2 - 기능개발

[문제설명]

- 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses ( 100개 이하)

- 작업의 개발 속도가 적힌 정수 배열 speeds ( 100개 이하) 

- 각 배포마다 몇 개의 기능이 배포되는지를 return 하는 solution 함수를 완성해라.

- 작업 진도 100 미만의 자연수, 작업 속도는 100 이하의 자연수.

- 배포는 하루1회 하루의 끝에. ( 진도율이 95%고 개발 속도가 4%면 배포는 2일 뒤에 이루어짐.)

 

[내 풀이]

- zip 으로 묶어서 speeds 요소에 1씩 증가시키면서 곱해가지고 (100 - progresses) 보다 커질때를 리턴하면 될거같은데.

라고 생각했지만 제한이 최대 값을 기준으로 되어 있네. 다 마무리되면 대기 했다가 7일째에 2개 9일째에 한개 배포해서 리턴이 2, 1 이구나.

- 그럼 일단 내가 생각한대로 해서 배열을 만들고 앞쪽배열이 완성된 경우 배포하는 방식으로 해보자.

//수정//

- 먼저 각 프로그램 배포할 수 있는 날짜 배열 days 를 만들고 days를 구한다.

- 날짜 배열에서 앞에꺼보다 뒤에것이 작으면 카운트 늘리는 방식으로 코딩.

 

###22.01.10 수정본

- ceil 을 사용하지 않음.

- append(999) 를 사용하지 않고 days[-1] 일때는 cnt를 그냥 append하도록 수정.