문제 주소 : www.acmicpc.net/problem/15562
문제 확인
특별한 알고리즘이 필요없는 문제입니다.
문제에서 주어진 특성을 잘 이해하면 풀 수 있는 문제입니다.
풀이
A -> B, B -> C 라는 2개의 네트워크가 있을 때 이를 A -> C로 줄일 수 있습니다. 다시 말해 어떤 점에서 들어오는 선과 나가는 선이 있다면 이 둘을 합쳐 하나의 선으로 만들 수 있다는 것입니다.
이러한 성질을 이용해 들어오는 선이 1개 이상이며 나가는 선이 들어오는 선 이상일 경우를 합하면 답이 됩니다.
result += out - in > 0 ? out - in : 0
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#include <iostream>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int n, m, ary[1000001]={0}, res = 0;
cin >> n >> m;
while (m--) {
int a, b;
cin >> a >> b;
ary[a]++; //나가는 선
ary[b]--; //들어오는
}
for (int i = 0; i < n; i++)
res += ary[i] > 0 ? ary[i] : 0;
cout << res;
}
|
cs |
반응형
'알고리즘 문제 > [백준]' 카테고리의 다른 글
[백준] 14891 톱니바퀴 (0) | 2021.01.10 |
---|---|
[백준] 1444 숌 언어 (0) | 2021.01.07 |
[백준] 18233 러버덕을 사랑하는 모임 (0) | 2021.01.03 |
[백준] 2042 구간 합 구하기 (0) | 2021.01.01 |
[백준] 1867 돌멩이 제거 (0) | 2020.12.31 |