728x90
https://school.programmers.co.kr/learn/courses/30/lessons/42587
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
from collections import deque
def solution(priorities, location):
answer = 0
dq = deque() #prio
dq_idx = deque() #prio 인덱스
num = [0] * 101
for i in priorities :
dq.append(i)
for i in range(len(priorities)) :
dq_idx.append(i)
idx = 1
while dq :
cur = dq.popleft()
cur_idx = dq_idx.popleft()
if len(dq) == 0 :
num[cur_idx] = idx
continue
if cur >= max(dq) :
num[cur_idx] = idx
idx += 1
else :
dq.append(cur)
dq_idx.append(cur_idx)
return num[location]
처음 코드!
수정 코드!
from collections import deque
def solution(priorities, location):
dq = deque(enumerate(priorities))
max_priority = max(priorities)
answer = 0
while dq:
cur_idx, cur_pri = dq.popleft()
if cur_pri == max_priority:
answer += 1
if cur_idx == location:
return answer
if dq:
max_priority = max(pri for _, pri in dq)
else:
dq.append((cur_idx, cur_pri))
return answer
1. dq = deque(enumerate(priorities)) 로 간단히 사용
2. 꺼낼 땐, cur_idx, cur_pri = dq.popleft() 로 두개 써주기
3. max값 구할때도, max(pri for _, pri in dq)
728x90
'𝘼𝙣𝙖𝙡𝙮𝙨𝙞𝙨 > ᴀʟɢᴏʀɪᴛʜᴍ' 카테고리의 다른 글
[Python] 딕셔너리 value 기준으로 정렬하기 (0) | 2024.09.03 |
---|---|
deque, heapq 차이 (0) | 2024.06.24 |
[Python] 짝지어 제거하기 (deque) (0) | 2024.03.11 |
Python fibo (0) | 2024.03.11 |
Python 2진수 만들기 (0) | 2024.03.11 |