https://school.programmers.co.kr/learn/courses/30/lessons/42587
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
์ด๋ค ์์ผ๋ก ๋์ํด์ผํ๋์ง ์ดํด๋ ๋๋ฌด ์ฝ๊ฒ ๋๋๋ฐ, ๊ตฌํํ๋ ๋ฐ ์๊ฐ์ด ์ข ๊ฑธ๋ ธ๋ ๋ฌธ์ ์ด๋ค.
์ฐ์ ์์์ ์ด๊ธฐ ์ธ๋ฑ์ค๋ฅผ ํจ๊ป ์ ์ฅํ๋ ๊ฒ์ด ํธํ๊ฒ ๋ค๊ณ ํ๋จํ๊ณ ,
ํ์ (์ฐ์ ์์, ์ธ๋ฑ์ค) ํํ์ ์ฐจ๋ก๋ก ๋ฃ๊ณ ์ฝ๋๋ฅผ ์์ฑํ๋ค.
python
from collections import deque
def solution(priorities, location):
q = deque()
for i in range(len(priorities)):
q.append((priorities[i], i))
prior = deque(priorities)
answer = 0
while q:
if q[0][0] == max(prior):
num, idx = q.popleft()
prior.remove(num)
answer += 1
if idx == location:
return answer
else:
q.append(q.popleft())
return answer
์๋ ์ฝ๋๋ ๋ค๋ฅธ ์ฌ๋์ด ์ ์ถํ ์ฝ๋ ์ค ํ๋์ธ๋ฐ ๊ฐ์ธ์ ์ผ๋ก ์ ๋ ๊ฒ ํธ๋ ๊ฒ์ด ๊น๋ํด๋ณด์๋ค.
ํ์์ ์ค์ ๋ก ํ๋ก์ธ์ค๋ฅผ ๊บผ๋ด๋ ์์ ๋์ ์ปค์ ์ด๋, ์ฐ์ ์์ ๊ฐ์ 0์ผ๋ก ๋ณ๊ฒฝ์์ผ์ค ํ์ด์ด๋ค.
def solution(priorities, location):
n = len(priorities)
answer = 0
cursor = 0
while True:
print(priorities)
if max(priorities) == priorities[cursor%n]:
priorities[cursor%n] = 0
answer += 1
if cursor%n == location:
break
cursor += 1
return answer
'์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด > ๊ตฌํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค]๊ณผ์ ์งํํ๊ธฐ (0) | 2023.06.17 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฃผ์ฐจ ์๊ธ ๊ณ์ฐ (1) | 2023.06.07 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ธฐ๋ฅ๊ฐ๋ฐ (0) | 2023.06.04 |
[ํ๋ก๊ทธ๋๋จธ์ค] ํคํจ๋ ๋๋ฅด๊ธฐ (1) | 2023.05.26 |
[softeer] ๋น๋ฐ ๋ฉ๋ด (0) | 2023.05.25 |