개발공부/algorithm
[프로그래머스][python] 기능 개발 - list
so.py
2021. 5. 18. 16:01
문제
- 프로그래머스: 기능 개발
- Level 2
- Link
코딩테스트 연습 - 기능개발
프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는
programmers.co.kr
나의 코드
- 각 작업의 남은 일수를 계산하여 순서대로 order 리스트에 추가해준다.
- order 리스트에서:
- i번째 원소가 i + 1번째 원소보다 보다 크거나 같으면, 그 다음 기능들이 i번째 원소와 같은 날 배포가 된다. 한 번에 배포되는 작업 수를 1 증가시켜준다.
- i번째 원소가 i + 1 보다 작다면, 배포 일자는 그 다음으로 넘어가기에 result 리스트에 새로운 수를 추가해주고 1 증가시켜준다.
import math
def solution(progresses, speeds):
order = []
for i in range(len(progresses)):
total = 100 - progresses[i]
days = math.ceil(total / speeds[i])
order.append(days)
result = [1]
for j in range(len(order) - 1):
if order[j] >= order[j + 1]:
order[j + 1] = order[j]
result[-1] += 1
else:
result.append(1)
return result
사실 효율성 면에서 떨어질 것이라고 생각했는데, 효율성을 채점하는 테스트케이스가 없어서 ㅜㅠ 확인할 수 없었다.. 조금 더 똑똑한 방법이 있지 않을까 생각 중이다.