일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 모듈로 곱셈 역원
- 혁펜하임
- 분할 정복
- 백준 구간 합 구하기 5 파이썬
- 알고리즘
- 수학
- 패스트캠퍼스
- 코딩테스트
- 분할 정복을 이용한 거듭제곱
- 구현
- 백준 13172 파이썬
- 백준 Σ 파이썬
- 혁펜하임강의후기
- 그리디알고리즘
- 혁펜하임강의
- 다이나익 프로그래밍
- 백준 구간 합 구하기 5
- 백준 시그마 파이썬
- mysql
- 백준 시그마
- DP
- 자료구조
- 백준 13172
- AIDEEPDIVE
- 다이나믹프로그래밍
- 큐
- AI강의
- 백준 Σ
- 혁펜하임AI
- 패스트캠퍼스혁펜하임
- Today
- Total
MingyuPark
[프로그래머스] 기능 개발 2 본문
문제
https://school.programmers.co.kr/learn/courses/30/lessons/42842
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
아이디어
리스트를 큐로 사용해서 계산한다.
현재 우선순위가 가장 높은(가장 앞에 있는) 작업의 진도를 본다. 진도가 100이상인 경우 배포할 수 있지만, 그렇지 않은 경우 작업이 더 진행되어야 한다. 따라서 가장 앞에 있는 작업의 진도가 100보다 작은 경우 계속 작업을 진행한다.
[95, 90, 99, 99, 80, 99] → [96, 91, 100, 100, 81, 100] → [97, 92, 101, 101, 82, 101] → [98, 93, 102, 102, 83, 102] → [99, 94, 103, 103, 84, 103] → [100, 95, 104, 104, 85, 104]
* 1개의 작업을 배포할 수 있게 됨
* 작업이 100%를 넘어서 101%, 102%와 같이 진행되지는 않겠지만, 어차피 배포할 수 있기 때문에 전혀 중요하지 않음
첫 번째 작업이 배포될 수 있게 되는 순간, 뒤에 이어서 배포할 수 있는 작업을 탐색한다. 여기서는 그 다음 작업은 완료되지 않았기 때문에 첫 번째 작업만 배포할 수 있다.
> 배포하고 난 후의 작업은 전혀 고려할 필요가 없기 때문에 progress, speeds에서 모두 제외한 후, 다시 같은 작업을 수행한다. progress에 더 이상 값이 남아있지 않을 때까지 수행하면 된다.
[95, 104, 104, 85, 104] → [96, 105, 105, 86, 105] → [97, 106, 106, 87, 106] → [98, 107, 107, 88, 107] → [99, 108, 108, 89, 108] → [100, 109, 109, 90, 109]
* 3개의 작업을 배포할 수 있게 됨
[90, 109] → ∽ → [100, 119]
* 2개의 작업을 배포할 수 있게 됨
* progress에 남은 작업이 없기 때문에 반복문이 종료됨
Solution
def solution(progresses, speeds):
answer = []
while progresses :
if progresses[0] >= 100 :
cnt = 0
while progresses and progresses[0] >= 100 :
cnt += 1
progresses.pop(0)
speeds.pop(0)
answer.append(cnt)
else :
progresses = [x + add for x, add in zip(progresses, speeds)]
return answer
'Algorithm' 카테고리의 다른 글
[백준 1931] 회의실 배정 (0) | 2023.01.25 |
---|---|
[백준 11047] 동전 0 (0) | 2023.01.23 |
[프로그래머스] 기능 개발 1 (0) | 2022.11.03 |
[프로그래머스] 네트워크 (0) | 2022.11.03 |
[백준 1059] 좋은 구간 (1) | 2022.09.27 |