Algorithm/Softeer
우물 안 개구리
48965
2024. 3. 26. 11:56
풀이
처음에는 dfs문제인줄 알았지만 풀다보니 일반 구현문제였다. 먼저 연관성을 입력 받고 반복문을 돌려 각 사람들에 연결된 사람들의 무게를 비교하며, 현재 단계 사람의 무게보다 연결된 사람의 무게가 더 무거우면 flag를 설정하여 카운트하지 않았다.
#include<iostream>
#include<vector>
using namespace std;
int N,M;
int W[100001];
vector<int> vec[100001];
bool flag;
int main(int argc, char** argv)
{
int u,v,ans=0;
cin>>N>>M;
for(int i=1;i<=N;i++){
cin>>W[i];
}
for(int i=0;i<M;i++){
cin>>u>>v;
vec[u].push_back(v);
vec[v].push_back(u);
}
for(int i=1;i<=N;i++){
flag = false;
for(int j=0;j<vec[i].size();j++){
int next = vec[i][j];
if(W[i]<=W[next]){
flag = true;
break;
}
}
if(!flag) ans++;
}
cout<<ans;
return 0;
}