일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Brute-force
- 백준
- 모던자바
- 프로젝트
- backtracking
- baekjoon
- 프로그래머스
- 자바
- java
- Java8
- 네트워크
- DP
- kotlin
- LEVEL2
- programmers
- back-end
- DFS
- 알고리즘
- 그래프
- 스프링
- 코틀린
- 백트래킹
- TDD
- algorithm
- Spring
- lambda
- OS
- BFS
- 자료구조
- 운영체제
- Today
- Total
목록알고리즘 (63)
요깨비's LAB
import java.util.* var isComplete = false class ZeroArea( var row: Int, var col: Int, var visited: Array = Array(9) { false } ) val map = Array(9) { Array(9) { 0 } } fun main() { val scr = Scanner(System.`in`) val zeroAreas = mutableListOf() for (i in 0 until 9) { for (j in 0 until 9) { map[i][j] = scr.nextInt() if (map[i][j] == 0) { zeroAreas.add(ZeroArea(i, j)) } } } for (zeroArea in zeroAreas..
import java.util.* class Solution { fun solution(s: String): Int { var answer = Int.MAX_VALUE var strLen = s.length var compactIndex = strLen / 2 var compareStr = s.substring(compactIndex, strLen) for (i in 1..compactIndex) { var resultStr = "" var index = 0 while (index strLen) break; compareStr = s.substring(index, index + i) } if (count > 1) { subStr = StringBuffer().append(count).append(subS..
class Solution { fun solution(w: Int, h: Int): Long { var answer: Long = 0 var w = w.toLong() var h = h.toLong() val gcd = getGcd(w,h) answer = ((w*h) - (w+h-gcd)) return answer } fun getGcd(num1: Long, num2: Long):Long { var n1: Long var n2: Long var gcd:Long = 1 if(num1 >= num2) { n1 = num1 n2 = num2 } else { n1 = num2 n2 = num1 } for(i in 1..n2) { if(n1 % i == 0.toLong() && n2 % i == 0.toLong..
import java.util.* var N: Int = 0 var M: Int = 0 val sb = StringBuffer() fun main() { val scr = Scanner(System.`in`) N = scr.nextInt() M = scr.nextInt() for(i in 1..N) { val str = StringBuffer() dfs(i, str.append(i).append(" "), 1) } print(sb.toString()) } fun dfs(n:Int, str: StringBuffer,count: Int) { if(count == M) { sb.append(str.toString() + "\n") return } val n = n+1 for(i in n..N) { var s ..
class Solution { fun solution(new_id: String): String { var answer: String = new_id answer = step1(answer) answer = step2(answer) answer = step3(answer) answer = step4(answer) answer = step5(answer) answer = step6(answer) answer = step7(answer) return answer } fun step1(new_id: String): String { return new_id.toLowerCase() } fun step2(new_id: String): String { val sb = StringBuffer() new_id.forE..
import java.util.* class Solution { var result:Int = 0 fun solution(board: Array, moves: IntArray): Int { val basket = Stack() for (col in moves) { catchDoll(board, basket, col-1) } return result } private fun catchDoll(board: Array, basket: Stack, col: Int) { val rowSize = board.size-1 for(row:Int in 0..rowSize) { if(board[row][col] == 0) { continue }else { insertToBasket(basket, board[row][col..
노드 객체를 만들고 적절히 DFS 탐색하면서 부모노드를 갱신해주면 됩니다. 여기에서 이미 갱신된 부모노드는 갱신하지 않도록 예외를 걸어주었습니다. import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Scanner; public class Main { static int N; static Element[] elements; static boolean[] visited; public static void main(String[] args) { Scanner scr = new Scanner(System.in); N = scr.nextInt(); elements = new Element[N + ..
처음에는 2차원 배열에 맵을 담아서 방향 그래프를 따른 우선 순위큐 기반의 다익스트라를 구현하였습니다.(여기까지는 스스로 아이디어 생각해내서 하루종일 걸려서 구현까지 했지만... import java.util.*; public class Main { static int V,E; public static void main(String[] args ) { Scanner scr = new Scanner(System.in); final int INF = 10000; V = scr.nextInt(); E = scr.nextInt(); int startV = scr.nextInt(); int[][] map = new int[V+1][V+1]; int[] result = new int[V+1]; for(int i=1;i