Banner

My Tech Blog (순위)

오늘의 명언
📑 1. 문제설명💡 2. 접근방식1. emergency 배열을 복사하여 sorted 배열을 생성하고 오름차순 정렬한다. 이 때 복사를 하는 이유는 기존 배열의 순서를 유지하면서 순위를 매겨야 하기 때문이다.2. 해시맵을 사용하여 응급도와 순위를 매핑한다.HashMap rankMap을 선언하여 응급도 값 → 순위로 저장한다. sorted는 오름차순이므로, 큰 값일수록 높은 순위가 된다. `rankMap.put(sorted[i], sorted.length - i);` → 응급도가 클수록 높은 순위(큰 값)로 매핑이 된다. 3. result 배열을 생성하여 응급도 순위를 저장한다. 이 때 기존 emergency 배열을 순회하면서 rankMap에서 rankMap.get(emergency[i]) 으로 해당 응..
📑 1. 문제설명💡 2. 접근방식자료 만들 생각에 벌써부터 피곤하다. 하하하 문제 풀이에 앞서, 명색이 그래프 문제인 만큼 그래프에 대해 간략히 설명하고자 한다.2-1. 그래프의 구조노드: 원(circle)으로 표시하고, 숫자로 번호를 적는다.간선: 노드를 연결하는 선(segment)으로, 모든 간선이 양방향임을 보여주기 위해 화살표 없이 직선으로 그린다.return 하고자 하는 값은 1번 노드에서 가장 멀리 떨어진 노드의 수 이다.즉 1번 노드에서 다른 노드들로 이동하는 최단 거리를 계산해서 최단 거리가 가장 먼 노드들이 몇 개인지를 구해야 한다. 2-2. 해결 방법(1) 인접 리스트로 그래프 만들기 List> graph = new ArrayList(); 예를 들어 문제에서 제시된 vertex ..
📑 1. 문제설명💡 2. 접근방식n명의 선수가 있을 때, 각 선수는 모든 다른 선수와 경기를 하여 n-1번의 승패를 기록한다.즉, 전체 승패 결과만 있으면 각 선수의 상대적 위치를 정확히 판단해서 순위를 확정 할 수 있다. 승패를 통해 순위를 결정하는 방법은 간단히 말하면 모든 선수들 간의 직접적인 경기 결과를 반영하는 것이다. 예를 들어, 선수 i와 선수 j가 경기를 하여 승패가 결정되면, 그 결과를 기록한다.  플로이드 워셜(Floyd-Warshall) 알고리즘모든 쌍 최단 경로(all-pairs shortest path)를 구하는 알고리즘으로 그래프의 모든 노드 쌍에 대해 가장 짧은 경로를 찾는 알고리즘이다. 이 알고리즘을 사용하면 그래프의 모든 노드에 대해 다른 모든 노드로 가는 최단 경로를 ..
상단으로