본문 바로가기

Programmers/Level3

(44)
징검다리 건너기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 import java.util.*; class Solution { public static boolean sectionCheck(int[] stones, int k, int mid) { int cnt = 0; for (int i = 0; i
N으로 표현 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 class Solution { private static int min = 9; public static void DFS(int num, int N, int cnt, int res) { // 최솟값 갱신 if (num == res) { min = Math.min(cnt, min); return; } int add = N; // cnt가 8을 넘지 않을 경우만 수행 for (int i = 0; i
단속카메라 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 import java.util.*; class Solution { public int solution(int[][] routes) { int answer = 0; boolean[] checked = new boolean[routes.length]; // 끝나는 지점이 빠른 순으로 정렬 Arrays.sort(routes, new Comparator() { @Override public int compare(int[] o1, int[] o2) { return o1[1] - o2[1]; } }); for (int i = 0; i
등굣길 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 class Solution { public int solution(int m, int n, int[][] puddles) { int answer = 0; int[][] arr = new int[n + 1][m + 1]; int divNum = 1000000007; // 직선 코스일 경우 if(m == 1 || n == 1){ if(puddles.length > 0) return 0; else return 1;..
하노이의 탑 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 import java.util.*; class Solution { private static ArrayList list = new ArrayList(); private static Stack[] st = new Stack[4]; public static void hanoi(int n, int from, int to, int via) { ArrayList move = new ArrayList(); if (n == 1) { move.add(from); move.add(to); list.add(move); st[to]...
[카카오 인턴] 보석 쇼핑 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 import java.util.*; class Solution { public int[] solution(String[] gems) { int[] answer = new int[2]; HashSet set = new HashSet(); HashMap map = new HashMap(); HashSet collectedList = new HashSet(); // 보석 목록 저장 for (int i = 0; i
모두 0으로 만들기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 import java.util.*; class Solution { private static boolean[] visited; private static ArrayList[] edgeList; private static long[] L_a; private static long answer = 0; public static long DFS(int index) { visited[index] = true; // 현재 노드와 인접한 노드를 탐색하며 가중치 갱신 for (int i..
여행경로 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 import java.util.*; class Solution { private static ArrayList travelCourse; private static boolean flag = true; public static void SetTravelCourse(HashMap allPath, ArrayList tmpCourse, String destination, int i, int n) { // 처음으로 성공한 코스를 저장하고 종료 if (i ..