안녕하세요 오늘도 돌아온 주인장입니다~
오늘은 프린터라는 문제를 풀어봤어요
우선순위를 이용한 문제입니다~
문제 풀이 방식
1. 값과 인덱스를 묶어서 저장해줍니다.
2.하나씩 차례로 순회하면서 비교할 값이 max가 아니면 문자열로 잘라서
맨 뒤로 보내고 남은 문자열과 합해줍니다.
3. max 이면 새로운 배열에 넣어줍니다.
4. 그리고 location 과 같은 인덱스를 가진 값의 위치를 반환해줍니다~
여기서 보통 인덱스는 0부터 시작하지만 여기서는 1부터 시작하는 것을 주의해줍니다~
def solution(priorities, location):
priorities = [[v, i] for i, v in enumerate(priorities)]
i = 0
h = []
while True:
if len(priorities) == 1:
h.append(priorities[i])
break
if priorities[i][0] != (max(priorities)[0]):
priorities = priorities[i+1:] + [priorities[i]]
else:
h.append(priorities[i])
priorities = priorities[i+1:]
for i, v in enumerate(h):
if v[1] == location:
return i+1