문제를 보고 버스정류장, 버스 노선을 각각 구현하고 반복문을 통해서 각 버스 노선에 일치하는 정류장마다 1을 추가해주는 방식으로 구현하고자 했다. 3중 for문을 사용해도 시간초과가 되지 않는 것으로 봐서 굉장히 널널하게 시간이 주어졌음을 알 수 있다.
하지만 예제가 하나만 주어졌기 때문에 문제를 잘 읽어봐야한다. 버스 정류장의 번호는 1부터 시작하지 않을 수도 있고 정렬되어 주어지지 않을 수도 있기 때문에 이 부분에 유의하여 문제를 풀어야 한다.
N = int(input())
A, B = [], []
line = []
for i in range(N): # 버스 노선
a, b = map(int, input().split())
A.append(a)
B.append(b)
P = int(input())
for i in range(P):
p = int(input())
line.append([p,0]) # 정류장
for i in range(N):
for j in range(A[i],B[i]+1):
for k, val in enumerate(line):
if val[0]==j:
val[1]+=1
T = int(input())
for test_case in range(1, T + 1):
N = int(input())
A, B = [], []
line = []
for i in range(N): # 버스 노선
a, b = map(int, input().split())
A.append(a)
B.append(b)
P = int(input())
for i in range(P):
p = int(input())
line.append([p,0]) # 정류장
for i in range(N):
for j in range(A[i],B[i]+1):
for k, val in enumerate(line):
if val[0]==j:
val[1]+=1
print(f'#{test_case}',end=" ")
for i,val in enumerate(line):
print(val[1], end=" ")
print()