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