반응형
프로그래머스 스택, 큐를 이용한 기능개발이라는 문제이다.
https://school.programmers.co.kr/learn/courses/30/lessons/42586
코딩테스트 연습 | 프로그래머스 스쿨
개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!
school.programmers.co.kr
#sol_1단계
작업 마감까지 몇일 걸리는지 계산 후 리스트에 할당하기
"(100-진행도) = 남은 작업 퍼센트 / 하루에 개발 가능한 퍼센트"에 math.ceil을 통해 올림을 하면 남은 날짜가 나온다.
이것들을 리스트 l에 저장한다.
l의 첫 원소를 t라고 하고 뒤의 값들과 비교하기
값이 t보다 작으면 이전작업과 함께 배포되어야 하기 때문에 c(count) += 1을 해준다
값이 t보다 크면 지금까지 카운트해준걸 배포한 후, 새로 카운트를 시작 해야함 -> t는 현재 값(새로운 작업 일수)으로 하고, c는 1로 초기화 한다
전체 코드
import math
def solution(progresses, speeds):
answer = []
l = []
n = len(progresses)
for i in range(n):
l.append(math.ceil((100-progresses[i])/speeds[i]))
c, t = 1, l[0]
for i in range(1,n):
if l[i] > t:
answer.append(c)
t = l[i]
c = 1
else:
c += 1
answer.append(c)
return answer
반응형