def solution(progresses, speeds):
answer = []
while progresses :
if progresses[0] >= 100 :
progresses.pop(0)
speeds.pop(0)
answer.append(1)
while progresses and progresses[0] >= 100 :
progresses.pop(0)
speeds.pop(0)
answer[-1] += 1
continue
for i in range(len(progresses)) :
progresses[i] += speeds[i]
return answer
import math
def solution(progresses, speeds):
save = []
# 며칠 걸리는 지 구하기
for i in range(len(progresses)) :
p = (100-progresses[i]) / speeds[i]
save.append(math.ceil(p))
check = 1
num = save[0]
answer = []
# 첫 날을 기준으로 다음 개발일이 큰지 안큰지 비교하면서 넣기
for s in range(1,len(save) + 1) :
if s == len(save) :
answer.append(check)
break
if num > save[s] :
check += 1
elif num == save[s] :
check += 1
else :
answer.append(check)
num = save[s]
check = 1
return answer
import math
from collections import deque
def solution(progresses, speeds):
save = []
for i in range(len(progresses)) :
p = (100-progresses[i]) / speeds[i]
save.append(math.ceil(p))
queue = deque()
answer = []
# 근데 얘도 큐에 넣고 뺐다만 있지 위와 동일한 과정
for s in save :
if len(queue) == 0 or queue[0] >= s:
queue.append(s)
else :
answer.append(len(queue))
queue = deque()
queue.append(s)
if len(queue) > 0 :
answer.append(len(queue))
return answer
도대체 2월에 푼 풀이를 이해할 수가 없다 !!
새로 풀고나서 이전 풀이랑 비교하려고 봤더니...정말정말로 이상하게 풀었다..
다시 풀어보길 정말 잘한 것 같다!!!
풀이는 아래와 같이 저어어엉말 간단하다.
며칠 째에 반영이 되었는지 물어보는 것이 아니라, 한 번에 반영될 때 몇 개씩인지 알아내라 ~ 라는 말이기 때문에 이전 풀이와 같이 안풀어도 된다.
progresses가 빌 때까지 계속 반복한다.
이때 가장 앞에 있는 원소가 100 이상이 되지 않으면 pop할 수 없으므로 계속 speeds 씩 각각 더해준다.
그러다가 맨 앞 원소가 100 이상이면 progresses, speeds 둘 다 pop(0)을 하고, 혹시나 다음 원소들 중 100 이상인 수가 있는지 확인한다.(반복문)