SSENI's
search
sseni
말하는 감자에서 자라기
Today
Yesterday
STUDY/Coding Test (8)
1) 다익스트라 알고리즘 우선순위 표를 만들어 구함 [1, 2, 12] : 1번 정점에서 2번 정점까지 가는 데 드는 비용 12 - java package ch08; import java.io.*; import java.util.*; class Edge implements Comparable{ public int vex; public int cost; Edge(int vex, int cost){ this.vex = vex; this.cost = cost; } @Override public int compareTo(Edge ob){ return this.cost - ob.cost; } } public class 다익스트라알고리즘 { public int solution(int n, int[][] edges,..
1) 경로탐색 - 인접행렬 - java import java.util.*; class Main { int target, ans = 0; int[][] graph; int[] ch; public void DFS(int v){ if(v == target) ans++; else { for(int i=0; i
1) 재귀함수 - java import java.io.*; import java.lang.reflect.Array; import java.util.*; public class Main { public void DFS(int n){ if(n==0) return; else { DFS(n-1); System.out.print(n + " "); } } public static void main(String[] args){ Main T = new Main(); T.DFS(3); } } - python 2) 재귀함수를 이용한 이진수 출력 - java import java.io.*; import java.lang.reflect.Array; import java.util.*; public class Main { pub..
1) 침몰하는 타이타닉 - java import java.io.*; import java.lang.reflect.Array; import java.util.*; public class Main { public int solution(int[] nums, int m){ int ans = 0; Arrays.sort(nums); int left = 0; int right = nums.length - 1; while(left
1) 최대 매출 - java import java.io.*; import java.lang.reflect.Array; import java.util.*; public class Main { public int solution(int[] nums, int k){ int ans, sum =0; for(int i=0; i
# Stack # Queue # PriorityQueue 1) 올바른 괄호 - java import java.io.*; import java.util.*; public class Main { public String solution(String s){ String ans = "YES"; Stack stack = new Stack(); for(char x : s.toCharArray()){ if(x == '(') stack.push(x); else { if(stack.empty()) return "NO"; stack.pop(); } } if(!stack.isEmpty()) return "NO"; return ans; } public static void main(String[] args) throws IO..
1) 제곱수 정렬 - java import java.io.*; import java.util.*; public class Main { public int[] solution(int[] arr){ int n = arr.length; int[] ans = new int[n]; int left = 0; int right = n-1; for(int i=n-1; i >= 0; i--){ if(Math.abs(arr[left]) < Math.abs(arr[right])){ ans[i] = arr[right] * arr[right]; right--; } else { ans[i] = arr[left] * arr[left]; left++; } } return ans; } public static void main(Str..
# String 클래스 메서드 # HashMap 메서드 1) 문자열 압축 - java import java.io.*; import java.util.*; public class Main { public String solution(String s){ String ans = ""; s += " "; int cnt = 1; for(int i=0; i 1) ans += String.valueOf(cnt); cnt = 1; } } return ans; } public static void main(String[] args) throw..