[문제 링크] 👇
풀이 방법
- 버스 정류장 배열 초기화
- bus 배열을 초기화하여 각 정류장의 버스 노선 수를 0으로 설정한다.
- 정류장의 번호는 문제에서 최대 5,000까지 가능하므로 배열의 크기를 5,000으로 지정한다.
- 노선 정보 입력 및 정류장 누적
- 각 버스 노선의 시작 정류장 A와 끝 정류장 B가 주어지면, 해당 범위 내 모든 정류장의 값을 1씩 증가시켜, 각 정류장이 포함된 버스 노선의 개수를 누적한다.
- 특정 정류장 개수 계산
- 이후에 특정 정류장에 대해 지나가는 버스의 수를 확인하기 위해 P개의 정류장 번호를 입력받고, bus 배열에서 해당 인덱스 값을 result 리스트에 추가한다.
- 결과 출력
- 최종적으로 result 리스트에 저장된 값을 테스트 케이스 번호와 함께 출력한다.
Solution
T = int(input()) # 테스트 케이스 수
for test_case in range(1, T + 1):
N = int(input())
bus = [0]*5000 # 미리 버스 정류장 개수 만들기
for _ in range(N):
A, B = map(int, input().split())
for j in range(A - 1, B): # A 부터 B 까지의 범위에 해당하는 인덱스 값 누적
bus[j] += 1
P = int(input())
result = []
for _ in range(P):
stop = int(input())
result.append(bus[stop - 1]) # 입력받은 정류장에 해당하는 인덱스만 리스트에 저장
print(f"#{test_case}", *result)
📌 주의
이 풀이는 작은 입력에서는 문제가 없지만, 범위가 넓은 A와 B 값이 반복되면 시간이 오래 걸릴 수 있다.
'SWEA' 카테고리의 다른 글
[SWEA] 1873. 상호의 배틀필드 (Python/D3) (2) | 2024.11.13 |
---|---|
[SWEA] 10580. 전봇대 (Python/D3) (1) | 2024.11.13 |
[SWEA] 5789. 현주의 상자 바꾸기 (Python/D3) (1) | 2024.11.13 |
[SWEA] 1940. 가랏! RC카! (Python/D2) (0) | 2024.11.10 |
[SWEA] 2005. 파스칼의 삼각형 (Python/D2) (0) | 2024.11.10 |