728x90
https://school.programmers.co.kr/learn/courses/30/lessons/42587?language=python3
딱 봐도 큐 문제다.
문법력이 부족한 나는 heap이나 queue를 활용하지 못하고 리스트 튜플로 정의해서 풀었다..
풀릴듯 말듯.. 꽤 시간을 잡아먹었던 녀석
내 성공한 문제풀이
def solution(priorities, location):
answer = 0
temp = [(i,p) for i,p in enumerate(priorities)]
queue=[]
for i in priorities :
queue.append(i)
queue.sort(reverse=True)
while len(queue) != 0 :
for i in range(0,len(priorities)) :
if queue[0] == temp[i][1]:
answer+=1
queue.pop(0)
if temp[i][0] == location :
return answer
return answer
다른사람 문제풀이1
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): # cur[1]가 가장 큰수가 아닐 경우
queue.append(cur)
else: # cur[1]가 가장 큰수일 경우
answer += 1
if cur[0] == location:
return answer
다른사람 문제풀이2 - deque 이용
def solution(priorities, location):
answer = 0
from collections import deque
d = deque([(v,i) for i,v in enumerate(priorities)])
while len(d):
item = d.popleft()
if d and max(d)[0] > item[0]:
d.append(item)
else:
answer += 1
if item[1] == location:
break
return answer
'알고리즘 (JAVA) > 프로그래머스 알고리즘' 카테고리의 다른 글
[코테준비 - python] n^2 배열자르기 level2 - 개발자배찌 (0) | 2023.01.02 |
---|---|
[코테준비 - python] 겹치는 선분의 길이 - 개발자배찌 (0) | 2022.12.17 |
[코테준비 - python] 멀리뛰기 level2 - 개발자배찌 (0) | 2022.12.17 |
[코테준비 - python] 신규 아이디 추천 level1 - 개발자 배찌 (0) | 2022.12.15 |
[코테준비 - python] 시저 암호 level1 - 개발자배찌 (1) | 2022.12.15 |