반응형
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42586
문제
문제 해결법
1. 먼저 각 작업이 최소 몇 일을 작업해야 배포가 가능한지 계산하여 리스트에 넣어준다.
2. 리스트를 순환하며 먼저 배포해야하는 작업보다 걸리는 일 수가 적은 것들은 카운트를 세어주고, 일 수가 더 큰 작업이 나올 경우에 결과 리스트에 값을 넣어준다.
3. 끝까지 돌았을 경우에 마지막 count를 한번 더 넣어준다.
내 코드
1. math를 써준 이유는 나머지 작업에서 속도를 나누었을 때 최소 걸리는 시간이 실수로 떨어지게 되면 무조건 하루가 더 필요하므로 올림을 해주기 위해서이다.
2. required_day 리스트를 한 줄로 만들어주었다. zip으로 묶어서 각 리스트의 값을 받아오고, 100-i가 잔여 작업, j가 속도로써 두 개를 나눠서 올림해주었다.
3. 소요 시간 리스트에서 가장 앞에부터 순환해야되므로 deploy_cnt=0, temp_day=required_day[0] 으로 해주었다.
4. for문 돌면서 i+1번째가 temp_day 보다 큰게 나오는 경우 결과 리스트에 넣고 초기화를 반복했다.
스택/큐 유형에 등록된 문제이지만 거의 대부분 이렇게 풀었을 것 같다.
Level 2보다는 1에 가까운 문제인 것 같다.
반응형
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] K번째수(level 1) Python 문제 풀이 (0) | 2021.07.17 |
---|---|
[프로그래머스] 프린터 (level 2) Python 문제 풀이 (2) | 2021.06.26 |
[프로그래머스] 위장 (level 2) Python 문제 풀이 (0) | 2021.06.19 |
[프로그래머스] 전화번호 목록(level 2) Python 문제 풀이 (0) | 2021.06.16 |
[프로그래머스] 완주하지 못한 선수(level 1) Python 문제 풀이 -2 (0) | 2021.06.15 |
댓글