프로그래머스 | 스택/큐 | 프로세스 (python)

2024. 10. 11. 20:29·ALGORITHM

https://school.programmers.co.kr/learn/courses/30/lessons/42587?language=python3

 

프로그래머스

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

programmers.co.kr

 

코드

from collections import deque

def solution(priorities, location):
    queue = deque([(priority, idx) for idx, priority in enumerate(priorities)])
    cnt = 0
    
    while queue:
        curr_process = queue.popleft()
        
        if queue and curr_process[0] < max(queue, key = lambda x: x[0])[0]:
            queue.append(curr_process)
        else:
            cnt += 1
            if curr_process[1] == location:
                break
        
    
    return cnt

 

max값을 비교하는 과정에서 queue가 비어있는 상황에 런타임 에러 나서 queue 조건을 추가해줘야했다.

 

그래서

max값을 따로 저장하는 방식으로 바꾸는 게 좋을듯

from collections import deque

def solution(priorities, location):
    queue = deque([(priority, idx) for idx, priority in enumerate(priorities)])
    cnt = 0
    
    max_priority = max(priorities)
    
    while queue:
        curr_process = queue.popleft()
        
        if curr_process[0] < max_priority:
            queue.append(curr_process)
        else:
            cnt += 1
            if curr_process[1] == location:
                return cnt
            
            if queue:
                max_priority = max(queue, key=lambda x: x[0])[0]
    
    return cnt
반응형

'ALGORITHM' 카테고리의 다른 글

알고리즘 강의 | Do it! 알고리즘 코딩테스트 with Python - 벨만포드  (3) 2024.10.13
알고리즘 강의 | Do it! 알고리즘 코딩테스트 with Python - 56. 최단 경로 구하기  (4) 2024.10.13
프로그래머스 | PCCP 기출 문제 1번 | 동영상 재생기 (Python)  (1) 2024.10.10
프로그래머스 | 네트워크 (Python)  (1) 2024.10.01
프로그래머스 | 키패드 누르기 (Python)  (0) 2024.10.01
'ALGORITHM' 카테고리의 다른 글
  • 알고리즘 강의 | Do it! 알고리즘 코딩테스트 with Python - 벨만포드
  • 알고리즘 강의 | Do it! 알고리즘 코딩테스트 with Python - 56. 최단 경로 구하기
  • 프로그래머스 | PCCP 기출 문제 1번 | 동영상 재생기 (Python)
  • 프로그래머스 | 네트워크 (Python)
진미
진미
  • 진미
    ABC
    진미
  • 전체
    오늘
    어제
    • 분류 전체보기 (64)
      • PROJECT (3)
      • ALGORITHM (43)
      • STUDY (3)
        • 리액트 (7)
        • 파이썬 (2)
      • 기타 (4)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 글쓰기
    • 설정
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
진미
프로그래머스 | 스택/큐 | 프로세스 (python)
상단으로

티스토리툴바