문제
https://school.programmers.co.kr/learn/courses/30/lessons/176962
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
정답
from collections import deque
def solution(plans):
temp = deque()
left_time = 0
answer = []
for plan in plans:
time=0
a,b = plan[1].split(':')
time = (60*int(a)) + int(b)
plan[1] = time
plan[2] = int(plan[2])
plans = sorted(plans, key = lambda x : x[1])
for i in range(len(plans)):
sub, start_time, dur_time = plans[i]
while temp:
sub_, dur_time_ = temp.pop()
if left_time >= dur_time_:
answer.append(sub_)
left_time -= dur_time_
else:
temp.append([sub_, dur_time_-left_time])
break
temp.append([sub, dur_time])
if i < len(plans)-1:
left_time = plans[i+1][1] - start_time
while temp:
과제, 시간 = temp.pop()
answer.append(과제)
return answer
>> temp에 언제 값을 넣어줄 것인지에 대한 고민이 있었다. 조건이 많아서 조건의 순서를 잘 배열해서 코드를 짜는게 중요했던 문제.
'파이썬 > 백준' 카테고리의 다른 글
| 프로그래머스 파이썬 길 찾기 게임 (0) | 2023.11.06 |
|---|---|
| 프로그래머스 카드 뭉치 파이썬 (0) | 2023.07.24 |
| 프로그래머스 | 달리기 경주 (python) (0) | 2023.07.13 |
| 프로그래머스 _ sqrt와 조합 사용한 문제 (0) | 2023.04.30 |
| python ) 백준 #1541 잃어버린 괄호 (0) | 2022.10.17 |