ํ๋ก๊ทธ๋๋จธ์ค์ ์ฝ๋ฉ์ฐ์ต ์ค level2์ stack/queue ์นดํ ๊ณ ๋ฆฌ์ "๊ธฐ๋ฅ๊ฐ๋ฐ" ๋ฌธ์ ํ์ด
(๋ฌธ์ : ์๋ ๋งํฌ๐๐๐)
๋ฌธ์ ํ์ด
์ด ๋ฌธ์ ๋ ์ฒ์์๋ ๊ต์ฅํ ์ฌ์๋ณด์ด๋, ํ ์คํธ์ผ์ด์ค๋ฅผ ์ก์ง ๋ชปํ๋ฉด ๊ณ์ ํด๋งฌ ์ ์๋ค.
์ ํ์ฑ์ ๋ค ์ก์ง ๋ชปํ์ ๋ถ๋ค์ ๋ค์ ํ ์คํธ์ผ์ด์ค๋ฅผ ์ฐธ๊ณ ๋ฐ๋๋ค.
โผ๏ธํต์ฌ ํ ์คํธ์ผ์ด์ค
progresses = [90,90,90,90,90,90]
speeds = [10,10,10,1,10,1]
์ ํ ์คํธ์ผ์ด์ค์ ๊ฒฝ์ฐ ์์ ์ด ๋๋๊ธฐ๊น์ง ๋จ์ ์ผ์๋ ๊ฐ๊ฐ 1์ผ, 1์ผ, 1์ผ, 10์ผ, 1์ผ, 10์ผ์ด๋ค.
๋ฐ๋ผ์ 1์ผ์งธ์ 3๊ฐ์ ๊ธฐ๋ฅ, 10์ผ์งธ์ 3๊ฐ์ ๊ธฐ๋ฅ์ด ๋ฐฐํฌ๋๋ค.
์ฆ, [3,3]์ return ํด์ผํ๋ค.
์๋๋ ๋์ ์ฝ๋์ด๋ค.
stack์ '์์ ์ด ๋๋๊ธฐ๊น์ง ๋จ์ ์ผ์(๋ณ์ days)'๋ฅผ push, popํ๋ฉด์ ๊ฐ ์ผ์์ ๋ฐฐํฌํด์ผํ๋ ๊ธฐ๋ฅ๊ฐ์๋ฅผ res ๋ฐฐ์ด์ ๋ด์์ค๋ค.
######### ์ ํ์ฑ 100% #########
from math import ceil
def solution(progresses, speeds):
res = []
stack = [ceil((100-progresses[0])/speeds[0])]
res = []
for i in range(1,len(progresses)) :
days = (100-progresses[i])/speeds[i]
if (len(stack) != 0) and (days <= stack[0]) :
stack.append(days)
else :
res.append(len(stack))
stack = [days]
res.append(len(stack))
return res
๋ด๊ฐ ์ ์ํ ํ ์คํธ์ผ์ด์ค์ ์ฝ๋๊ฐ ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋ผ๋ฉด์..!! ๋ง์น๋ค ๐