(C++) - 프로그래머스(고득점 kit - 그래프) : 순위
programmers.co.kr/learn/courses/30/lessons/49191 코딩테스트 연습 - 순위 5 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 2 programmers.co.kr 플로이드 와샬 문제였습니다. 풀이방법 1. 누가 누구를 이겼는지에 대한 정보를 담을 2차원 배열 gameInfo라는 변수를 선언합니다. i선수가 j선수를 이겼다면 gameInfo[i][j] = 1이 됩니다. 2. 플로이드 와샬을 수행해서 누락된 승부 정보를 알아냅니다. 만약 i가 k를 이겼고 k가 j를 이겼다면 삼단논법에 의해 i는 j를 이긴것이 됩니다. 3. i가 j를 이겼거나 i가 j에게 패배했다면 그 개수를 세줍니다. 예를들어 2번 선수의 순위가 도출되려면 1,3,4,5번 선수..
(C++) - 프로그래머스(고득점 kit - 그래프) : 가장 먼 노드
programmers.co.kr/learn/courses/30/lessons/49189 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr bfs문제였습니다. 풀이방법 1. 주어진 간선들이 단방향으로 주어지기 때문에 양방향 인접 그래프로 변환해줍니다. 2. 1번 노드에서 시작하여 bfs를 시행합니다. 연결된 노드들까지의 최소거리를 dist배열에 저장합니다. 2. 가장 먼 노드까지의 거리를 저장합니다. 3. 해당거리와 같은 거리의 노드들의 개수를 세줍니다. Code #include #define MAX 0x3f3f3f3f using namespace std; int bfs(vector..