[Programmers] 프로세스

태환·2024년 3월 19일
0

Coding Test

목록 보기
129/151

📌 [Programmers] 프로세스

📖 문제

📖 예제

📖 풀이

def solution(priorities, location):
    answer = 0
    while True:
        best = max(priorities)
        front = priorities.pop(0)
        location -= 1
        if front == best:
            answer += 1
            if location < 0:
                return answer
        else:
            priorities.append(front)
            if location < 0:
                location = len(priorities) - 1

입력 배열인 priorities의 최대값과 가장 앞에 있는 값을 비교하여 같을 경우 answer을 1 올리고, 같지 않을 경우 가장 앞의 값을 맨 뒤로 보낸다.
그 과정에서 가장 맨 앞 값을 뺄 때마다 location을 1씩 빼주어 타겟값이 이동해주는 것을 표현해준다.
가장 앞의 값과 최대 값이 같은데 location의 값 또한 0보다 작을 경우 가장 앞의 값이 타겟값이라는 의미이기 때문에 answer을 출력한다.
최대값이 아닐 때 타겟값이 나올 경우 해당 값을 맨 뒤로 보내고 위치 값을 priorities의 길이 -1로 초기화해준다.

profile
연세대학교 컴퓨터과학과 석사 과정

0개의 댓글