๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป Programming/์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ…Œ์ŠคํŠธ

[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_ํ”„๋ฆฐํ„ฐ (์Šคํƒํ)

by ๋ญ…์ฆค 2022. 2. 14.
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

 

ํ’€์ด

ํ์— ์šฐ์„  ์ˆœ์œ„, index ์ˆœ์œผ๋กœ ์ €์žฅํ•˜๊ณ  while ๋ฌธ์„ ๋Œ๋ฉด์„œ ํ์—์„œ ํ•˜๋‚˜์”ฉ ๋นผ๊ณ  ์šฐ์„ ์ˆœ์œ„์— ๋” ๋†’์€๊ฒŒ ํ์— ๋‚จ์•„์žˆ์œผ๋ฉด ํ˜„์žฌ ๊ฐ’์„ ๋‹ค์‹œ ํ์— ์ง‘์–ด๋„ฃ๋Š”๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ์— result์— +1 ํ•˜๊ณ  ํ˜„์žฌ index๊ฐ€ location๊ณผ ๋™์ผํ•˜๋ฉด while ๋ฌธ breakํ•˜๊ณ  result๋ฅผ ๋ฆฌํ„ดํ•ด์ค€๋‹ค.

from collections import deque

def solution(priorities, location):
  result = 0

  d = deque([(v,i) for i,v in enumerate(priorities)]) # priority, index ์ˆœ์œผ๋กœ que์— ์ €์žฅ

  while len(d):
    item = d.popleft()
    if d and max(d)[0] > item[0]:
      d.append(item)
    else:
      result+=1
      if item[1] == location:
        break
  return result
๋ฐ˜์‘ํ˜•