[스택/큐] 프로그래머스 - 프린터 / python

지연·2022년 1월 12일

프로그래머스

목록 보기
1/7
post-thumbnail

링크

https://programmers.co.kr/learn/courses/30/lessons/42587

문제 설명

입출력 예시

💡 사고의 흐름

  • 인덱스를 저장할 값 따로 필요
  • 따라서, priorities의 인덱스를 따로 list 형태로 선언
    1) priorities[0]이 J 값
    2) priorities 내부에서 J가 가장 큰 값을 가지면,
    2-1) priorities.pop(0)
    2-2) result.append(idx(0))
    3) priorities 가 가장 큰 값이 아니라면,
    3-1) priorities.append(priorities.pop(0))
    3-2) idx.append(idx.pop(0))
    4) result에는 출력된 순서대로 index 값이 들어있음
    -> 따라서, result에서 location과 같은 값에 해당하는 index+1을 return

Code

def solution(priorities, location):
    
    result=[]
    idx = [i for i in range(len(priorities))]
    
    while len(priorities)!=0:
        if priorities[0]==max(priorities):
            result.append(idx.pop(0))
            priorities.pop(0)
        else:
            priorities.append(priorities.pop(0))
            idx.append(idx.pop(0))
            
    for i in range(len(result)):
        if result[i]==location:
            return i+1
            
    // 아래 for문
    // return result.index(location)+1 으로도 접근 가능!
profile
기록하는 삶. 알고리즘 공부를 기록합니다!

0개의 댓글