๋ฌธ์
ํ๋ก๊ทธ๋๋จธ์ค ๊ธฐ๋ฅ๊ฐ๋ฐ
https://school.programmers.co.kr/learn/courses/30/lessons/42586
์ฝ๋
from collections import deque
def solution(progresses, speeds):
progresses_que = deque(progresses)
speeds_que = deque(speeds)
answer = []
while progresses_que:
while progresses_que[0] < 100:
for i in range(len(progresses_que)):
progresses_que[i] += speeds_que[i]
done = 0
while progresses_que[0] >= 100:
done += 1
progresses_que.popleft()
speeds_que.popleft()
if not progresses_que:
break
answer.append(done)
return answer
ํ์ด
์์ ์๋๊ฒ pop ๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ํ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ์๋ค.
while progresses_que:
while progresses_que[0] < 100:
for i in range(len(progresses_que)):
progresses_que[i] += speeds_que[i]
๋งจ ์์ ์ ๋ฌด์ ์ง๋์จ์ด 100 ์ด์ ๋ ๋๊น์ง ๊ฐ ์ ๋ฌด์ ๊ณ์ ์ ๋ฌด์๋๋ฅผ ๋ํ๋ค.
done = 0
while progresses_que[0] >= 100:
done += 1
progresses_que.popleft()
speeds_que.popleft()
if not progresses_que:
break
๋งจ์๋ถํฐ ์ ๋ฌด ์ง๋์จ์ด 100 ์ด์์ธ๊ฒ๋ง popํ๋ฉฐ popํ ๋๋ง๋ค done += 1 ํ๋ค. ์ด๋ done์ ์ ๋ฌด ์๋ฃ ๋ณ์๋ค.
popํ๋ค๊ฐ ์ ๋ฌด ์ง๋์จ์ด 100 ๋ฏธ๋ง์ธ๊ฑธ ๋ฐ๊ฒฌํ๋ฉด while ๋ฌธ์ ํ์ถํ๋ค.
์ ๋ฌด๋ฅผ ๋ชจ๋ ์ฒ๋ฆฌ ํ์๋(๋ชจ๋ pop๋์ด์ ํ์ ๋จ์ ์ ๋ฌด๊ฐ ์์๋)๋ while๋ฌธ์ ํ์ถํ๋ค.
answer.append(done)
done์ answer ๋ฐฐ์ด์ ์ถ๊ฐํ๋ค.
๋๋์ ์ฝ๋
def solution(progresses, speeds):
print(progresses)
print(speeds)
answer = []
time = 0
count = 0
while len(progresses)> 0:
if (progresses[0] + time*speeds[0]) >= 100:
progresses.pop(0)
speeds.pop(0)
count += 1
else:
if count > 0:
answer.append(count)
count = 0
time += 1
answer.append(count)
return answer
if๋ฌธ์ ์๊ฐ๋ณต์ก๋์ ํฐ ์ํฅ์ ๋ผ์น์ง ์๋๋ค.
๊ทธ๋์ ์ ์ฝ๋๋ณด๋ค ์๊ฐ๋ณต์ก๋๊ฐ ๋ ๋ฎ์์ ์ฝ๋ ์คํ ์๋๊ฐ ๋ ๋น ๋ฅด๋ค.
(์ )
# ํ
์คํธ 1 ใ ํต๊ณผ (0.02ms, 10.1MB)
# ํ
์คํธ 2 ใ ํต๊ณผ (0.52ms, 10.2MB)
# ํ
์คํธ 3 ใ ํต๊ณผ (0.56ms, 10.2MB)
# ํ
์คํธ 4 ใ ํต๊ณผ (0.18ms, 10.3MB)
(ํ)
# ํ
์คํธ 1 ใ ํต๊ณผ (0.02ms, 10.1MB)
# ํ
์คํธ 2 ใ ํต๊ณผ (0.12ms, 10.2MB)
# ํ
์คํธ 3 ใ ํต๊ณผ (0.07ms, 10.1MB)
# ํ
์คํธ 4 ใ ํต๊ณผ (0.07ms, 10.1MB)
์๋กญ๊ฒ ๋ฐฐ์ด์ / ๋๋์
- ๋น์ทํ ๋ก์ง์ผ๋ก ๋์๊ฐ๋ ์ฝ๋๋ฅผ ์ง๋, common case์ ์๊ฐ ๋ณต์ก๋๋ฅผ ์ด๋ป๊ฒ ์ค์ด๋์ ๋ฐ๋ผ ์คํ์๋๊ฐ ํ์ฐํ ์ฐจ์ด๊ฐ ๋๋ค๋๊ฑธ ๋๊ผ๋ค. ( ํ ์คํธ 3 ์ผ์ด์ค์์๋ ๋ฌด๋ ค 8๋ฐฐ๋ ์ฐจ์ด๊ฐ ๋๋ค)
- ์์ผ๋ก ์ฝ๋๋ฅผ ์งค ๋, common case๊ฐ ๋ฌด์์ธ์ง ํฌ์ฐฉํ๊ณ ์ด๋ฅผ ์ด๋ป๊ฒ ์ค๊ณํ๋ฉด ์๊ฐ๋ณต์ก๋๋ฅผ ๋ฎ์ถ ์ ์๋์ง ๊ณ ๋ฏผํ๋๋ก ๋ ธ๋ ฅํด์ผ๊ฒ ๋ค.
- ์ฝ๋๊ฐ ์๋ ๊ฐ๋ฐ์๊ฐ ๋์
'์ฝ๋ฉํ ์คํธ๐ก' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์นดํซ (0) | 2024.05.28 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ฐ์ฅ ํฐ ์ (0) | 2024.05.26 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฌ๋ฐ๋ฅธ ๊ดํธ (0) | 2024.05.23 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ (0) | 2024.05.21 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ ํ๋ฒํธ๋ชฉ๋ก (0) | 2024.05.21 |