Algorithm

Algorithm

슬라이딩 윈도우

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 위 글을 참고해서 생각..

Algorithm

그래프 탐색

다익스트라 알고리즘 하나의 정점에서 출발해서 다른 노드들 까지의 최단 거리를 구하는 알고리즘 음수 가중치가 없어야 사용할 수 있다. 인접행렬로 구현하는 경우 시간복잡도는 O(n^2) 우선순위 큐를 이용하여 구현하는 경우 시간 복잡도는 O(mlogn) m: edge의 수 n: node의 수 과정 현재 노드와 인접 노드 중 가장 거리가 짧은 노드를 찾아 방문한다. 해당 노드를 거쳐 방문할 수 있는 노드들 까지의 경로의 최솟값을 업데이트한다. 즉, 기존 거리 값과 해당 노드를 거쳐 방문 노드까지 거리 값 중 최소를 해당 노드까지의 거리의 최소값으로 한다. 이 과정을 반복해 도착 노드까지 경로의 최솟값을 알아낸다. 구현방법 순차탐색 : 그냥 거리가 가장 짧은 노드를 찾는 걸 순차적으로 탐색하는 행위 우선순위 큐..

Algorithm/Programmers

[Lv.3] 양과 늑대

짜다가 포기한 코드1(--) import java.util.*; class Solution { static boolean[] visit; static Map nodeMap; public int solution(int[] info, int[][] edges) { int answer = 0; nodeMap=new HashMap(); visit=new boolean[info.length]; for (int i = 0; i < info.length; i++) { Node node=new Node(i,info[i]); nodeMap.put(i,node); } for (int i = 0; i < edges.length; i++) { Node parent = nodeMap.get(edges[i][0]); Node c..

Algorithm/Programmers

[Lv.3] 파괴되지 않은 건물

정확성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){ //해당 스킬 시행 후 벽이 존재하..

Algorithm/Programmers

[Lv.3] 다단계 칫솔 판매

import java.util.*; class Solution { public int[] solution(String[] enroll, String[] referral, String[] seller, int[] amount) { Map memberMap=new HashMap(); Member commander=new Member("-",new Member()); memberMap.put("-",commander); for (int i = 0; i < enroll.length; i++) { String name=enroll[i]; // if(referral[i]=="-"){ // Member member = new Member(name, null); // memberMap.put(name,member); ..

Algorithm/Programmers

[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=new Point(-1,-1); for (int i = 0; i < lock.length; i++) { for (int j = 0; j < lock[i].length; j++) { if(lock[i][j] == 0){ lockPoints.add(new Point(i,j)..

Algorithm/Programmers

[Lv.3] 경주로 건설

import java.util.Arrays; class Solution { static int n; static int minCost; static int[][] gameBoard; static boolean[][] visit; static int[][][] costDp; public int solution(int[][] board) { n=board.length; minCost=Integer.MAX_VALUE; gameBoard=board.clone(); visit=new boolean[gameBoard.length][gameBoard.length]; costDp=new int[gameBoard.length][gameBoard.length][2]; for (int[][] ints : costDp) { ..

Algorithm/Programmers

[Lv.3] 베스트 앨범

내가 짠 코드(통과) import java.util.*; class Solution { public int[] solution(String[] genres, int[] plays) { int[] answer = {}; Map genreMap=new HashMap(); List genreList=new ArrayList(); //key: name for (int i=0;i { // System.out.println("s = " + s); // System.out.println("genre = " + genre); // }); //System.out.println("================================================================"); List ansList..

시롱시롱
'Algorithm' 카테고리의 글 목록 (10 Page)