algorithm | May 21, 2020
각 element들의 중요도 list(priorites)와, 값을 구해야 하는 element의 index(location)가 input으로 주어진다.
priorites의 0번째 element의 중요도가 list 중에서 가장 높으면 인쇄하고, 가장 높지 않으면 맨 뒤로 보낸다.
중요도가 높은 순서대로 인쇄할 때, location을 index로 가지는 element는 몇 번째로 인쇄되는지 구하시오.
(중요도는 중복되는 값이 존재할 수 있다.)
def solution(priorities, location):
count = 0
max_num = max(priorities)
while True:
v = priorities.pop(0)
if max_num == v:
count += 1
if location == 0:
return count
else:
location -= 1
max_num = max(priorities)
else:
priorities.append(v)
if location == 0:
location = len(priorities)-1
else:
location -= 1
def solution(priorities, location):
queue = [(val, idx) for idx, val in enumerate(priorities)]
count = 0
while True:
if queue[0][0] == max(queue, key = lambda x:x[0])[0]:
count += 1
if queue[0][1] == location:
return count
else:
queue.pop(0)
else:
queue.append(queue.pop(0))
Reference: 프로그래머스 스택/큐 프린터 문제