[프로그래머스] 프린터

JIN·2021년 10월 21일
0

스택 큐

안녕하세요 오늘도 돌아온 주인장입니다~
오늘은 프린터라는 문제를 풀어봤어요
우선순위를 이용한 문제입니다~

문제 풀이 방식
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
profile
배우고 적용하고 개선하기

0개의 댓글

관련 채용 정보