Notice
Recent Posts
Recent Comments
Archives
04-29 14:11
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
관리 메뉴

줴림이 공부하줴림

5202. [파이썬 S/W 문제해결 구현] 3일차 - 화물 도크 본문

Study/SWEA

5202. [파이썬 S/W 문제해결 구현] 3일차 - 화물 도크

줴림 2025. 4. 24. 01:12

이번 문제는 '화물 도크' 문제이다. 간단하게 설명하면, 0시부터 24시까지 사용 가능한 도크를 최대 몇 대의 화물차가 쓸 수 있는지를 묻고 있다.

T = int(input())
for test_case in range(1, T+1):
    N = int(input())
    arr = [list(map(int, input().split())) for _ in range(N)]

    sorted_arr = sorted(arr, key=lambda x: x[1])    # 종료 시간 기준 정렬

    answer = 0      # 최대 이용 가능한 화물차 개수
    now_e = 0       # 앞 신청서 종료 시간

    for i in range(N):
        s = sorted_arr[i][0]    # 시작 시간
        e = sorted_arr[i][1]    # 종료 시간

        if now_e <= s:       # 앞 신청서 종료 시간보다 뒷 신청서 시작 시간 늦어야 함
            answer += 1
            now_e = e

    print(f"#{test_case} {answer}")

 

처음에 시작 시간으로 정렬할지 종료 시간으로 정렬할지 고민 좀 했었다. 근데 아무래도 비교하는 주체가 종료 시간이다보니, 종료 시간 기준으로 정렬하는 게 좋을 것 같았다.