π‘ Python 3
νλ¦°ν° [Link]
def solution(pri, loc):
from collections import deque
from functools import reduce
answer, check = 0, deque([(v, i) for i, v in enumerate(pri)])
while check:
k = check.popleft()
max_ = reduce(lambda x, y: max(x, y[0]), check, 0)
if check and k[0] < max_: check.append(k)
else:
answer += 1
if loc == k[1]: return answer
any
μ λν΄μ μκ² λμλ€.
def solution(priorities, location):
queue = [(i,p) for i,p in enumerate(priorities)]
answer = 0
while True:
cur = queue.pop(0)
if any(cur[1] < q[1] for q in queue):
queue.append(cur)
else:
answer += 1
if cur[0] == location:
return answer
μ λ μ΄ λ¬Έμ νμ΄λ΄€λλ° μ μ λΉν΄ μ½λ λ무 κΉλνλ€μ! λ°°μ°κ³ κ°λλ€.
λ§μ΄ λ°°μμ μ λ λμμ λλ¦¬κ³ μ κ°ν μ‘°μΈν΄λ³΄μλ©΄
μκΈ°μ reduceλ₯Ό maxλ‘ μΉννλ©΄ μ§μ μ€νν΄λ΄€μλ μ½ 1.5λ°°μ λ μ μλ―Έν μ±λ₯μ°¨μ΄κ° μλ κ² κ°μ΅λλ€! μ νν λͺ¨λ₯΄κ² μ§λ§ reduce κ°μ κ²½μ°λ μ무λλ λμ μ νλ©΄μ μ¬λ¬λ² λΉκ΅νλ€λ³΄λ λ μ€ν μκ°μ΄ μ€λ 걸리λλ΄μ.
max(check, key=lambda x:x[0])[0] **if check else 0**
μ¬κΈ°μ 쑰건κ°μ κ²½μ°λ μμλ€μνΌ reduceλ initial_numμ 0μ μ£Όμ΄ checkκ° λΉλ°°μ΄μ΄μ΄λ 0μ λ°ννμ§λ§ μλ μ½λλ λ°νμ μλ¬λ₯Ό λ°ννμ¬ μ‘°κ±΄λ¬Έμ λ£μ΄μ£Όμμ΅λλ€.μ κ±°λ λ³΄κ³ λ°°μ°μ€κ±° μμ§λ§ νΌμ μΉμ¬νκ² νμλ μ μμ΄μ λ§ν¬ μ¬λ¦½λλ€
https://github.com/algo4sik2/CoTe/blob/main/Programmers/2022/03/29/taekyun.py