내 인생은 개발 중
[프로그래머스] 프로세스 - Python 본문
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를 써서 풀었던 답안도 있던데 내일 공부해서 그걸로도 풀어봐야겠댜!!
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 다음 큰 숫자 - Python (0) | 2024.05.16 |
---|---|
[프로그래머스] 숫자의 표현 - Python (0) | 2024.05.14 |
[프로그래머스] 타겟 넘버 - Python (0) | 2024.05.12 |
[프로그래머스] 이진 변환 반복하기 - Python (0) | 2024.05.08 |
[프로그래머스] JadenCase 문자열 만들기 - Python (0) | 2024.05.07 |
Comments