Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- C
- IFileDialog
- UnrealEngine5
- UE5
- 백준
- DirectX11
- const
- algorithm
- 오블완
- DeferredRendering
- GeeksForGeeks
- Unreal Engine5
- baekjoon
- winapi
- Programmers
- directx
- Frustum
- 프로그래머스
- RVO
- 2294
- UnrealEngine4
- RootMotion
- 줄 세우기
- softeer
- 언리얼엔진5
- C++
- 팰린드롬 만들기
- 티스토리챌린지
- 1563
- NRVO
Archives
- Today
- Total
Game Develop
[Algorithm] Programmers :: 가장 먼 노드 본문
최장,최단노드들을 알아내야할 경우, 보통 BFS를 쓰는 경향이 있는것같아서 BFS로 풀어보았다.
그리고 인접행렬보다는 인접리스트를 쓰는게 좀 더 효율적인것같다. 이 문제같은 경우, 1번노드라는 특정노드에서 가장 먼 노드들을 찾는것이기 때문에 바로바로 노드들을 타고 내려가면서 distMap에 기록해야 하기 때문에, 인접리스트로 구현했다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
int solution(int n, vector<vector<int>> edge)
{
int answer = 0;
vector<int> distMap(n + 1, -1); // dist[i]==> 1번노드에서 i번노드까지의 거리.
// -1로 초기화한건 아직 방문안했다는 의미.
queue<int> q;
q.push(1); // 시작노드 넣어놓기.
distMap[1] = 0; // 1번노드가 기준이므로, 자기자신은 0으로 세팅.
vector<vector<int>> graph(n + 1); // 노드가 1부터시작해서 인덱스도 맞춰주는게 생각하기편함.
for (int i = 0; i < edge.size(); i++) // 그래프 모델링.
{
int startNode = edge[i][0];
int destNode = edge[i][1];
graph[startNode].push_back(destNode);
graph[destNode].push_back(startNode);
}
while (!q.empty())
{
int popedNode = q.front();
q.pop();
for (int connectedNode : graph[popedNode]) // graph[i] => i번 노드와 연결된 노드들이 담겨있는 vector.
{
if (distMap[connectedNode] == -1) // 아직방문안했으면
{
distMap[connectedNode] = distMap[popedNode] + 1;
q.push(connectedNode);
}
}
}
int maxNum = *max_element(distMap.begin(), distMap.end());
for (int i = 0; i < distMap.size(); i++)
{
if (distMap[i] == maxNum)
{
answer++;
}
}
return answer;
}
|
cs |
'Algorithm > Programmers' 카테고리의 다른 글
[Algorithm] Programmers :: 타겟 넘버 (0) | 2022.05.19 |
---|---|
[Algorithm] Programmers :: 피보나치 수 (0) | 2022.05.18 |
[Algorithm] Programmers :: 멀쩡한 사각형 (0) | 2022.05.18 |
[Algorithm] Programmers :: N개의 최소공배수 (0) | 2022.05.18 |
[Algorithm] Programmers :: 숫자 문자열과 영단어 (0) | 2022.05.18 |