PS (Problem Solving)/Programmers

[프로그래머스] 프린터

캐럿노트 2022. 11. 22. 23:34

문제

https://school.programmers.co.kr/learn/courses/30/lessons/42587?language=python3 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

설계

- 출력해야 하는 location 위치를 index로 비유하여 풀이

- bucket array를 사용하는것이 더 쉬운 풀이방법 같다.

def solution(priorities, location):
    answer = 0      # 출력 횟수
    while 1:
        flag = 0
        # 우선순위 확인
        for i in range(1, len(priorities)):
            if priorities[i] > priorities[0]:
                flag = 1
        # 뒤에 우선순위가 높은 문서가 있을 경우 순서 변경
        if flag == 1:
            priorities.append(priorities[0])
            priorities.pop(0)
            if location == 0:
                location = len(priorities) - 1  # 맨 뒤로 이동
            else:
                location -= 1

        # 뒤에 우선순위가 높은 문서가 없음
        elif flag == 0:
            answer += 1
            if location == 0:
                return answer
            priorities.pop(0)
            location -= 1