«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Recent Posts
Tags more
Today
Total
관리 메뉴

내 인생은 개발 중

[프로그래머스] 프로세스 - Python 본문

Algorithm/프로그래머스

[프로그래머스] 프로세스 - Python

seul.e 2024. 5. 13. 23:13

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

 

프로그래머스

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

programmers.co.kr

 

 

풀이

from collections import deque
def solution(priorities, location):
    cnt = 0
    queue = deque(priorities)

    while queue:
        # 한칸씩 앞으로 땡겨질때마다 위치 앞당겨주기
        location -= 1
        max_num = max(queue)
        temp_num = queue.popleft()
        # 현재 pop한 프로세스의 우선순위와 가장 높은 우선순위 비교 후 같으면 cnt += 1
        if temp_num == max_num:
            cnt += 1
        # 다르면 다시 큐에 넣어주기
        else:
            queue.append(temp_num)
            # 위치가 0보다 작으면 다시 큐의 맨 뒷자리 위치로 갱신해주기
            if location < 0:
                location = len(queue) - 1
        # 위치가 0보다 작으면 해당 프로세스가 실행된것이니 종료 후 값 반환
        if location < 0:
            break

    return cnt

 

💡알게된 점💡

아무리 생각해도 해당 위치에 있는 프로세스가 몇번째로 실행될 지 생각이 안나서 다른 블로그 참고 후 완전히 이해하고
혼자 다시 풀어보는 시간을 가졌다!

확실히 문제를 풀면서 여러 다양한 풀이를 접할 수 있어서 좋은 것 같다!

파이썬의 enumerate를 써서 풀었던 답안도 있던데 내일 공부해서 그걸로도 풀어봐야겠댜!!

Comments