Hwannni / Study_Algorithms

자료구조와 알고리즘 공부를 기반으로 코딩 테스트를 준비하는 리포지토리
0 stars 1 forks source link

programmers / level2 / 프로세스 #99

Open jiminchur opened 4 months ago

jiminchur commented 4 months ago
def solution(priorities, location):
    # queue변수에 (인덱스 , 값)으로 리스트화 시키기
    queue = [(i, p) for i, p in enumerate(priorities)]
    # 숫자 세기위한 변수 생성
    count = 0
    # while문으로 무한루프돌리기
    while True:
        # 첫번째 부분부터 꺼내기
        cur = queue.pop(0)
        # 꼬인부분----------
        for other in queue:
            if cur[1] < other[1]:
                queue.append(cur)
            else:
                count += 1
                if cur[0] == location:
                    return count
        # ------------------
Hwannni commented 4 months ago

from collections import deque

def solution(priorities, location):

answer = 0

# 프로세스의 우선순위와 인덱스를 담을 리스트 생성
processes = []
for index, num in enumerate(priorities):
    processes.append((priority, num)) 

# 리스트(processes)를 deque로 변환
# 현재 큐는 [(2,0), (1,1), (3,2), (2,3)]
queue = deque(processes)

# 반복문
while queue:
    # 큐에서 현재 프로세스 꺼냄
    # 현재 current에는 (2,0) 이 담기게 된다.
    current = queue.popleft()  

    # 우선순위를 비교시 사용될 조건
    higher_num = False  

    # 다른 프로세스들 중에 더 높은 우선순위가 있는지 확인
    # 현재 큐에는 [(1,1), (3,2), (2,3)] 이 담겨 있음
    for item in queue:
        # 2와 1을 비교! -> else문으로 이동
        # 2와 3을 비교 -> if문 이동
        if current[0] < item[0]: 
            # 우선순위가 더 높다고 판단하여 True로 업데이트
            higher_num = True
            break  # 반복 중단
        else:
        # answer에 반복횟수 1 증가
            answer += 1

        ## 이후 로직 구현 못함