프로그래머스 - 프린터

KangMyungJoe·2023년 4월 14일
0

algorithm

목록 보기
18/55

문제 설명

우선순위를 나타내는 priorities, 구해야 할 위치 값인 location이 주어진다.

priorities[location]의 해당하는 값이 몇 번째로 출력되는지를 확인하는 문제다.


접근 방식

  • location에 해당하는 값이 몇 번째로 출력되는지 확인하기 위한 result 배열을 선언했다.

  • priorities 배열 첫 원소가 가장 큰 원소인지 확인 하고, 맞는 경우 result 배열에서 해당 값이 location 에 해당하는지 확인한다.

  • location에 해당하면 값을 내보낼 때마다 기록해두고 있던 i값을 리턴한다.

  • 그렇지 않은 경우, 첫 번째 요소를 맨 마지막에 다시 넣는다.

작성한 코드

def solution(priorities, location):
    answer=[]
    
    result = [0 for _ in range(len(priorities))]
    result[location] = 1
    i = 0

    while True:
        if priorities[0] == max(priorities):
            i += 1
            
            if result[0] != 1:
                priorities.pop(0)
                result.pop(0)
            else:
                answer = i
                break
        else:
            priorities.append(priorities[0])
            result.append(result[0])
            
            priorities.pop(0)
            result.pop(0)
            
    return answer 
profile
소통을 잘하는 개발자가 되고 싶습니다.

0개의 댓글