KEEP GOING

[python] SWEA 5202 : 화물 도크 본문

code review/greedy

[python] SWEA 5202 : 화물 도크

jmHan 2022. 2. 8. 12:55
반응형

https://swexpertacademy.com/main/learn/course/lectureProblemViewer.do

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

1. 코드 구현 (난이도 중하)

from collections import deque

for tc in range(1, int(input())+1):
    result = 0
    n = int(input())
    time = [tuple(map(int, input().split())) for _ in range(n)]
    # 일찍 칼퇴하는 순으로 정렬, 칼퇴 시간이 같을 경우 시작 시간을 정렬
    time.sort(key=lambda x:(x[1], x[0]))
    for i in range(n):
        deq = deque(time)
        pre = deq.popleft()
        lst = [pre]
        while deq:
            if pre[1] <= deq[0][0]:
                pre = deq.popleft()
                lst.append(pre)
                continue
            deq.popleft()
        # 최대 화물차의 이용 가능 시간대 카운트 
        result = max(result, len(lst))
        
        if time:
            time.pop(0)

    print(f'#{tc} {result}')

 

반응형
Comments