๋ฌธ์
์ฝ๋
class Solution {
int graph[101][101]={0,};
public:
int findTheCity(int n, vector<vector<int>>& edges, int distanceThreshold) {
for (int i = 0; i < 101; i++) {
fill(graph[i], graph[i] + 101, 1e9);
}
for(int i=0; i<n; i++){
for(int k=0; k<n; k++){
if(i==k) graph[i][k]=0;
}
}
for(int i=0; i<edges.size(); i++){
int a = edges[i][0];
int b = edges[i][1];
int cost = edges[i][2];
graph[a][b] = cost;
graph[b][a] = cost;
}
for(int k=0; k<n; k++){
for(int a=0; a<n; a++){
for(int b=0; b<n; b++){
graph[a][b]=min(graph[a][b],graph[a][k]+graph[k][b]);
}
}
}
int ans=0,city=1e9;
for(int i=0; i<n; i++){
int cnt=0;
for(int k=0; k<n; k++){
if(graph[i][k]<=distanceThreshold) cnt++;
}
if(city>=cnt){
ans=i;
city=cnt;
}
}
return ans;
}
};
ํ์ด
ํ ๋์์์ distanceThreshold์ ๋น์ฉ์ผ๋ก ๊ฐ ์ ์๋ ๋ชจ๋ ๋์์ ๊ฒฝ์ฐ์ ์๊ฐ ์ ์ผ ์ ์ ๋์ ๋ฒํธ๋ฅผ ์ถ๋ ฅํฉ๋๋ค. ๋ง์ฝ ๊ฒฝ์ฐ์ ์๊ฐ ๊ฐ์ ๋์ ๋ฒํธ๊ฐ ์ฌ๋ฌ ๊ฐ๋ผ๋ฉด ํฐ ์ซ์์ ๋์ ๋ฒํธ๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ธ ํ๋ก์ด๋-์์ฌ ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ์ฌ ๋ชจ๋ ๋์๊ฒฝ๋ก์ ์ต์๋น์ฉ์ ๊ธฐ๋กํ ํ, ๋ฌธ์ ์กฐ๊ฑด์ ๋ง๋ ๋์ ๋ฒํธ๋ฅผ ์ฐพ์ ์ถ๋ ฅํฉ๋๋ค.
'Algorithm ๐ง๐ปโ๐ป > Leetcode' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Leetcode,c++] Valid Parentheses (0) | 2021.11.09 |
---|---|
[Leetcode,c++] Palindrome Number (0) | 2021.11.09 |
[Leetcode,c++] Search Insert Position (0) | 2021.11.09 |
[Leetcode,c++] Combination Sum (0) | 2021.11.07 |
[Leetcode,c++] Multiply-Strings (0) | 2021.11.07 |
[Leetcode,c++] Longest Common Subsequence (0) | 2021.10.23 |
๋๊ธ