https://sirong-blog.tistory.com/entry/Lv3-%EC%9E%90%EB%AC%BC%EC%87%A0%EC%99%80-%EC%97%B4%EC%87%A0 [Lv.3] 자물쇠와 열쇠 삽질코드(82/100) import java.util.ArrayList; import java.util.List; class Solution { public boolean solution(int[][] key, int[][] lock) { int n=lock.length; List lockPoints=new ArrayList(); Point initPoint,endPoint; initPoint=new Point(n,n); endPoint=n sirong-blog.tistory.com 위 글을 참고해서 생각..
다익스트라 알고리즘 하나의 정점에서 출발해서 다른 노드들 까지의 최단 거리를 구하는 알고리즘 음수 가중치가 없어야 사용할 수 있다. 인접행렬로 구현하는 경우 시간복잡도는 O(n^2) 우선순위 큐를 이용하여 구현하는 경우 시간 복잡도는 O(mlogn) m: edge의 수 n: node의 수 과정 현재 노드와 인접 노드 중 가장 거리가 짧은 노드를 찾아 방문한다. 해당 노드를 거쳐 방문할 수 있는 노드들 까지의 경로의 최솟값을 업데이트한다. 즉, 기존 거리 값과 해당 노드를 거쳐 방문 노드까지 거리 값 중 최소를 해당 노드까지의 거리의 최소값으로 한다. 이 과정을 반복해 도착 노드까지 경로의 최솟값을 알아낸다. 구현방법 순차탐색 : 그냥 거리가 가장 짧은 노드를 찾는 걸 순차적으로 탐색하는 행위 우선순위 큐..
정확성100, 효율성 0 코드 class Solution { public int solution(int[][] board, int[][] skill) { int answer = 0; answer=board.length*board[0].length; for (int[] nowSkill : skill) { int type=nowSkill[0]; int modi; if(type==1) modi=-1; else modi=1; int startX=nowSkill[1]; int startY=nowSkill[2]; int endX=nowSkill[3]; int endY=nowSkill[4]; int degree=nowSkill[5]; for (int i = startX; i 0){ //해당 스킬 시행 후 벽이 존재하..