728x90
๋ฐ์ํ
๋ฌธ์ ์ค๋ช
์ด ๋จ์๋ก ๊ธฐ๋ก๋ ์ฃผ์๊ฐ๊ฒฉ์ด ๋ด๊ธด ๋ฐฐ์ด prices๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๊ฐ๊ฒฉ์ด ๋จ์ด์ง์ง ์์ ๊ธฐ๊ฐ์ ๋ช ์ด์ธ์ง๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์.
์ ํ์ฌํญ
- prices์ ๊ฐ ๊ฐ๊ฒฉ์ 1 ์ด์ 10,000 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
- prices์ ๊ธธ์ด๋ 2 ์ด์ 100,000 ์ดํ์ ๋๋ค.
์ ์ถ๋ ฅ ์
prices | return |
[1, 2, 3, 2, 3] | [4, 3, 1, 1, 0] |
์ ์ถ๋ ฅ ์ ์ค๋ช
- 1์ด ์์ ์ โฉ1์ ๋๊น์ง ๊ฐ๊ฒฉ์ด ๋จ์ด์ง์ง ์์์ต๋๋ค.
- 2์ด ์์ ์ โฉ2์ ๋๊น์ง ๊ฐ๊ฒฉ์ด ๋จ์ด์ง์ง ์์์ต๋๋ค.
- 3์ด ์์ ์ โฉ3์ 1์ด๋ค์ ๊ฐ๊ฒฉ์ด ๋จ์ด์ง๋๋ค. ๋ฐ๋ผ์ 1์ด๊ฐ ๊ฐ๊ฒฉ์ด ๋จ์ด์ง์ง ์์ ๊ฒ์ผ๋ก ๋ด ๋๋ค.
- 4์ด ์์ ์ โฉ2์ 1์ด๊ฐ ๊ฐ๊ฒฉ์ด ๋จ์ด์ง์ง ์์์ต๋๋ค.
- 5์ด ์์ ์ โฉ3์ 0์ด๊ฐ ๊ฐ๊ฒฉ์ด ๋จ์ด์ง์ง ์์์ต๋๋ค.
๋ฌธ์ ํ์ด
๋ฌธ์ ์ ํต์ฌ์ ๊ฐ๊ฒฉ์ด ๋จ์ด์ง์ง ์๋ ๊ธฐ๊ฐ์ด ๋ช ์ด ์ธ์ง ๊ตฌํ๋ ๊ฒ์ ๋๋ค.
์ ๋ deque์ prices ๊ฐ์ ๋ฃ์ ํ, while๋ฌธ์์ ํ๋์ฉ ๊ฐ์ ๋นผ์ด ๋บ ๊ฐ๋ณด๋ค ์์ ๊ฐ์ด ๋์ฌ ๋๊น์ง ์ด๋ฅผ ๋ํด์ ๋ฃ์ด์ฃผ์์ต๋๋ค.
์์์์ prices์ 3๋ฒ์งธ ๊ฐ์ธ 3์ ๋ค์ ๊ฐ์ด 2์ด๊ธฐ ๋๋ฌธ์ 1์ด๋์ ๊ฐ๊ฒฉ์ด ๋จ์ด์ง์ง ์์ ๊ฐ์ด 1์ด ๋ฉ๋๋ค.
from collections import deque
def solution(prices):
answer = []
queue = deque(prices)
while queue:
price = queue.popleft()
sec = 0
for i in queue:
sec+=1
if price > i:
break
answer.append(sec)
return answer
728x90
๋ฐ์ํ