๐ŸŒฑ โ†’ ๐ŸŒณ

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํ”„๋กœ์„ธ์Šค - python ๋ณธ๋ฌธ

Algorithms

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํ”„๋กœ์„ธ์Šค - python

thals0 2023. 8. 30. 11:37
728x90

๋ฌธ์ œ ์ •๋ณด

https://school.programmers.co.kr/learn/courses/30/lessons/42587 

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

๋ฌธ์ œ ์œ ํ˜• : ํ

๋‚œ์ด๋„ : level 2

 

์ฝ”๋“œ 

(์ธ๋ฑ์Šค, ๊ฐ’) ์ด๋ ‡๊ฒŒ ํŠœํ”Œ ๊ตฌ์กฐ๋กœ ํ์— ๋„ฃ์–ด์„œ ํ’€์—ˆ์Œ

from collections import deque

def solution(priorities, location):
    answer = 0
    arr = []
        
    q = deque([])
    
    for i in range(len(priorities)):
        q.append((i, priorities[i]))
    
    while q:
        v = q.popleft()
        
        if len(q) == 0:
            arr.append(v)
            break
        
        li = sorted(q, key = lambda x : x[1], reverse=True)
        
        if v[1] >= li[0][1]:
            arr.append(v)
        else:
            q.append(v)
    
    for i in range(len(arr)):
        if arr[i][0] == location:
            answer = i+1
    return answer

 

๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ’€์ด

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() : https://otugi.tistory.com/206

  • any() : ํ•˜๋‚˜๋ผ๋„ True์ธ๊ฒŒ ์žˆ์œผ๋ฉด True
  • all() : ๋ชจ๋‘ True์—ฌ์•ผ True ๋ฐ˜ํ™˜
728x90