본문 바로가기
코딩테스트

[프로그래머스] 스택/큐 - 프로세스

by 박매트 2024. 1. 29.

 

문제가 이해가 안되어서... 답을 바로 봐버렸다.

 

다른 사람 풀이

def solution(priorities, location):
    answer = 0
    
    place = priorities.index(max(priorities))
    while (True):
        value = max(priorities)
    
        if (priorities[place] == value):
            priorities[place] = 0
            answer += 1
            
            if (place == location):
                break

        place += 1
        if (place >= len(priorities)):
            place = 0
    
    return answer

 

기존에 있던 거에서 큰 값을 찾으면, 우선순위를 0으로 만들고, 프로세스 실행 횟수를 1 증가시킨다..

그 때 큰 값의 위치 index랑 찾고자 하는 위치 index가 같으면 프로세스 실행 횟수 return ... 대박

 

같지 않다면, place를 1 증가시키면서, 큰 값을 또 다시 찾으러 다니는...

이 때 place가 길이보다 길어지면 처음부터 또 다시 찾는...

 

이렇게 하면 오랜 시간이 걸릴 것 같은데 아닌가보다...길이는 결국 9 이내니까..