DevYoon
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ธฐ๋ฅ๊ฐ๋ฐ (Python) ๋ณธ๋ฌธ
link ๐ https://programmers.co.kr/learn/courses/30/lessons/42586
1๏ธโฃ left ๋ฐฐ์ด์ ๋จ์ ์ง๋์จ(100-progress)๊ณผ ๊ฐ๋ฐ์๋๋ฅผ ๋๋ ๊ฐ์ math.ceil๋ก ์ฌ๋ฆผํด์ ๋ด์์ค๋ค.
2๏ธโฃ while๋ฌธ์ ํตํด 1๋ฒ ์ธ๋ฑ์ค๋ถํฐ 0๋ฒ ์ธ๋ฑ์ค๋ณด๋ค ์์ผ๋ฉด popํ ํ temp์ 1์ฉ ๋ํด์ฃผ๊ณ , ๋ง์ฝ 0๋ฒ ์ธ๋ฑ์ค๊ฐ ๋ ์๋ค๋ฉด temp์ 1์ ๋ํ ๊ฐ(0๋ฒ ์ธ๋ฑ์ค๊น์ง ํฌํจ)์ answer์ ์ฝ์ ํด์ฃผ๊ณ , 0๋ฒ ์ธ๋ฑ์ค๋ฅผ popํด์ค ํ idx์ temp๋ฅผ ์ด๊ธฐํํ๋ค.
3๏ธโฃ ๋ง์ฝ left์ ๋จ์ ์์๊ฐ ํ๋๋ผ๋ฉด, temp์ 1์ ๋ํ ๊ฐ์ answer์ ์ฝ์ ํด์ฃผ๊ณ while๋ฌธ์ ๋ฉ์ถ๋ค.
import math
def solution(progresses, speeds):
answer = []
length = len(progresses)
left = [0]*length
for idx in range(length):
left[idx] = math.ceil((100-progresses[idx])/speeds[idx])
idx = 1
temp = 0
while True:
if len(left) == 1:
answer.append(temp+1)
break
if left[0] >= left[idx]:
temp += 1
left.pop(idx)
elif left[0] < left[idx]:
answer.append(temp+1)
left.pop(0)
idx = 1
temp = 0
return answer