programmers | Lv2. ν”„λ¦°ν„° [Python]

yeonkΒ·2022λ…„ 3μ›” 25일
1

algorithm

λͺ©λ‘ 보기
79/88
post-thumbnail

πŸ’‘ 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






참고 자료

[Python] 파이썬 any(), all() ν•¨μˆ˜

2개의 λŒ“κΈ€

comment-user-thumbnail
2022λ…„ 3μ›” 29일

저도 이 문제 ν’€μ–΄λ΄€λŠ”λ° 저에 λΉ„ν•΄ μ½”λ“œ λ„ˆλ¬΄ κΉ”λ”ν•˜λ„€μš”! 배우고 κ°‘λ‹ˆλ‹€.
많이 λ°°μ›Œμ„œ 저도 도움을 λ“œλ¦¬κ³ μž 감히 μ‘°μ–Έν•΄λ³΄μžλ©΄

max_ = reduce(lambda x, y: max(x, y[0]), check, 0)
----------------------------------------------------
max_ = max(check, key=lambda x:x[0])[0] if check else 0

μš”κΈ°μ„œ 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

1개의 λ‹΅κΈ€