난이도 치고는 쉬웠던 문제이다.
처음엔 그래프 완전탐색 문제로 알았으나 그럴 필요 없이 각 node에 연결된 부분만 확인하면 되었다.
그렇기 때문에 2중 반복문을 사용해 쉽게 해결했다.
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main(int argc, char** argv)
{
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int N, M; cin >> N >> M;
vector<int> W(N + 1, 0);
vector<vector<int>> G(N + 1, vector<int>());
for (int i = 1; i <= N; i++)
cin >> W[i];
int a, b;
for (int i = 1; i <= M; i++)
{
cin >> a >> b;
G[a].push_back(b);
G[b].push_back(a);
}
int ans = 0;
for (int i = 1; i <= N; i++) {
int max_val = W[i];
bool flag = true;
for (int j = 0; j < G[i].size(); j++)
if (max_val <= W[G[i][j]])
{
flag = false;
break;
}
if (flag)
ans++;
}
cout << ans << '\n';
return 0;
}
'Coding_Test 연습 > Softeer' 카테고리의 다른 글
[현대 소프티어] (C++) 바이러스 (0) | 2022.11.06 |
---|---|
[현대 소프티어] (C++) 조립라인 (0) | 2022.11.05 |
[현대 소프티어] (C++) 금고털이 (0) | 2022.11.02 |
[현대 소프티어] (C++) 강의실 배정 (0) | 2022.10.31 |
[현대 소프티어] (C++) 수퍼바이러스 (0) | 2022.10.31 |