기능개발 문제 바로가기
나의 풀이#
def solution(progresses, speeds):
import math
answer = []
days = []
for p, s in zip(progresses, speeds):
days.append(math.ceil((100-p)/s))
print(days)
count = 1
temp = days[0]
for i in range(1,len(days)):
if temp < days[i]:
answer.append(count)
count = 1
temp = days[i]
else:
count += 1
return answer + [count]
고수의 풀이#
def solution(progresses, speeds):
Q=[]
for p, s in zip(progresses, speeds):
if len(Q)==0 or Q[-1][0]<-((p-100)//s):
Q.append([-((p-100)//s),1])
else:
Q[-1][1]+=1
return [q[1] for q in Q]
CODE REVIEW#
zip()
을 이용해서 각 과정 별 소요시간을 계산하고, 비교를 통해 답을 구해나가는 문제!
- 고수의 풀이에서는
math.ceil
사용하지 않고 -((p-100)//s)
을 통해 올림을 구현했다. 근데 웬만하면 math.ceil
사용하자 ㅋㅋㅋ