https://www.acmicpc.net/problem/3770

 

세그먼트 트리문제다. [7578] 공장 문제와 같은 풀이로 접근가능하다.

 

풀이

[7578] 공장 문제와 달리 유의할 점은 입력되는 간선의 정렬이 필요하다는 점이다.

 

출발지 기준 오름차순, 출발지가 같다면 도착지기준 오름차순으로 고속도로 정보를 정렬한 뒤, 매 순간 도착도시 다음번호 ~ 마지막 도착도시 구간의 건설된 고속도로의 개수 총합을 출력하면 된다.

 

입력 예제를 기준으로 시나리오를 그려보면 다음과 같다.

 

좌측의 N개의 도시, 우측의 M개의 도시와 정렬된 간선 그리고 구간 합 세그먼트 트리를 생성한다.

 

1번 도시와 4번 도시를 연결, 4번은 가장 마지막 도시이므로 구간합 조회 시 범위를 넘어가게 되어 0을 반환하게 된다.

다음 탐색을 위해 4번 노드에 1 추가.

 

2번 도시와 3번 도시 연결, 이때 3번 도시 이후의 구간 즉 4~4번 구간의 고속도로의 개수 1을 정답에 추가한다.

이후 3번 노드에 1 추가.

 

3번 도시와 1번 도시 연결, 2번 도시부터 4번 도시 구간의 고속도로의 수를 조회한다. 고속도로의 개수 2가 반환된다.

이후 1번 노드에 1 추가.

 

마지막으로 3번 도시와 2번 도시 연결, 3번 도시와 4번 도시 구간합을 조회. 정답에 해당 구간값 2를 추가한다.

2번 노드에 1 추가.

 

정답 코드

'Problem Solving > BOJ' 카테고리의 다른 글

[13334] 철로  (0) 2023.03.26
[3895] 그리고 하나가 남았다  (0) 2023.03.24
[3653] 영화 수집  (0) 2023.03.12
[7578] 공장  (0) 2023.03.11
[1280] 나무 심기  (1) 2023.03.09

+ Recent posts