SW Expert 아카데미 // 6485

2021. 1. 18. 13:09Programming/SW Expert Academy

SW Expert 아카데미 6485번 "삼성시의 버스 노선" 문제입니다.

TC = int(input())
for tc in range(1, TC+1):
    N = int(input())
    lst = [0]*5002
    for i in range(N):
        A, B = map(int, input().split())
        for j in range(A, B+1):
            lst[j] += 1
    P = int(input())
    ans = []
    for k in range(P):
        idx = int(input())
        ans.append(lst[idx])
    print("#%s"%tc, end=" ")
    for e in ans:
        print(e, end=" ")
    print()

나는 이 문제가 굉장히 설명이 어렵게 나와있다고 생각한다. 설명만 좀 더 쉽게 되어있으면 쉬운 문제라고 생각한다.

 

6485번 문제 테스트 케이스

첫 번째 줄에는 테스트 케이스의 개수가 입력된다. 1이 입력되었으니 테스트케이스가 1개가 예시로 나와있다.

 

두 번째 줄에는 운행하는 버스의 노선 개수를 입력받는다. 2가 입력되었으니 운행하는 버스 노선은 2개다.

 

다음 줄부터는 운행하는 버스 노선의 개수만큼 줄을 입력받는다. 입력받는 내용은 버스 노선의 시작 버스정류장과 종착 버스정류장의 번호이다.

 

1 3 이 입력되었으므로 첫 번째 버스는 1번 버스정류장부터 3번 버스정류장까지 운행한다는 말이다.

 

두 번째 줄에는 2 5가 입력되었으니 두 번째 버스는 2번 버스정류장부터 5번 버스정류장까지 운행한다는 말이다.

 

그 다음에는 숫자 한 개를 입력받는데 이는 운행하는 버스 정류장 정보를 얼만큼 출력할지에 대한 정보이다. 5를 입력받았으니 5개의 버스 정류장 정보를 출력할 것이다.

 

다음 5개의 입력은 출력할 버스 정류장의 번호를 입력받는다. 예시에서는 1~5를 입력했으므로 1번부터 5번까지 버스 정류장의 버스 운행 수를 출력한다.

 

1~3번 버스 정류장에서 버스 노선 하나가 운행되고 2번~5번 버스 정류장에서 버스 노선 하나가 운행되므로

 

1, 4, 5번 버스 정류장에서 운행되는 버스는 1개이고, 2, 3번 버스 정류장에서 운행되는 버스는 2개이므로 출력값은 1 2 2 1 1이 된다.