문제 출처 : SW Expert Academy
복도 구간이 겹치치지 않게 + 이동하는 데에는 거리에 관계없이 단위 시간이 걸린다고 하자.
각 학생들의 현재 방 위치와 돌아가야 할 방의 위치의 목록이 주어질 때, 최소 몇 단위시간만에 모든 학생들이 이동할 수 있는지를 구하시오.
import sys
sys.stdin = open('input.txt')
T = int(input())
for tc in range(1, T+1):
# 돌아가야 할 학생 수
N = int(input())
# 현재방 돌아갈 방
rooms = [list(map(int, input().split())) for _ in range(N)]
#
road = [0] * 201
for n in range(N):
# 방번호를 복도 번호로 바꿔주기
rooms[n][0] = (rooms[n][0]+1) // 2
rooms[n][1] = (rooms[n][1]+1) // 2
for i in range(N):
# 돌아갈 방번호가 더 작은 경우
if rooms[i][0] > rooms[i][1]:
rooms[i][0], rooms[i][1] = rooms[i][1], rooms[i][0]
# 복도 들리는 곳 체크해서 젤 큰수 뽑아내면 그게 답이다!
for j in range(rooms[i][0], rooms[i][1]+1):
road[j] += 1
print("#{} {}".format(tc, max(road)))