본문 바로가기

IT/알고리즘

[백준] 차이를 최대로 https://www.acmicpc.net/problem/10819 fun main() = with(Scanner(System.`in`)) { val count = nextInt() val visited = Array(count) { false } val array = Array(count) { 0 } for (i in array.indices) { array[i] = nextInt() } var result = 0 fun dfs(depth: Int, total: Int , current : Int) { if (depth == count - 1) { result = max(result, total) re..
[백준] 1,2,3 더하기 https://www.acmicpc.net/problem/9095fun main() = with(Scanner(System.`in`)) { val number = nextInt() val array = Array(number) { 0 } for (i in array.indices) { array[i] = nextInt() } for (i in array) { var count = 0; fun dfs(total: Int) { if (total >= i) { if (total == i) { count++ } re..
[백준] 퇴사 https://www.acmicpc.net/problem/14501 fun main() = with(Scanner(System.`in`)) { val count = nextInt() val days: MutableList = mutableListOf() for (i in 0 until count) { val day = nextInt() val pay = nextInt() days.add(Days(day, pay)) } var result = 0 fun dfs(totalDays: Int, pay: Int) { if (totalDays count) continue dfs(i + days[i].day, pa..
[백준] 좋은수열 백트래킹을 통한 재귀구현이미 완성된 수열의 경우 좋은수열로 판단하여 추가로 들어오는 값에대한 앞과 뒤를 확인하면 된다. fun main() = with(Scanner(System.`in`)) { val count = nextInt() var result = "" fun backTracking(n: Int, str: String, index: Int) { if(!canMake(str)){ return } if (index == n) { if(result.isEmpty()){ result = str return } for(i..
[백준] 단어수학 https://www.acmicpc.net/problem/1339  fun main() = with(Scanner(System.`in`)) { val maxNumber = nextInt() val arr: Array = Array(maxNumber) { "" } for (i in 0 until maxNumber) { arr[i] = next() } val map: MutableMap = mutableMapOf() for (text in arr) { for (i in text.indices) { map[text[i]] = map.getOrDefault(text[i], 0) + 10.0.pow((text.length - 1 - i)..
[프로그래머스] 3xn 타일링 https://school.programmers.co.kr/learn/courses/30/lessons/12902?language=java class Programmers_3xn타일링 { //n2 * n2 + (n4) @Test fun solution() { var size = 8 var arrays = Array(size + 1) { 0 } arrays[0] = 1 arrays[2] = 3 for (i in 4 .. size step 2) { arrays[i] = arrays[i - 2] * 4 - arrays[i - 4] } System.out.println(arrays[size..
[백준] 부분수열의 합 https://www.acmicpc.net/problem/1182 fun main() = with(Scanner(System.`in`)) { val n = nextInt() val s = nextInt() val arr = Array(n) { 0 } for (i in 0 until n) { arr[i] = nextInt() } var sCount = 0 fun total(cur : Int , sum : Int){ if(cur == n){ if(sum == s) sCount++ return } total(cur + 1, sum) total(cur + 1, sum + a..
[백준] - 그림 (BFS) 1.시작하는 칸을 큐에 넣고 표시남김2.큐에서 원소 꺼내서 인접한 칸 3번에 대해 3번 진행3. 해당칸을 이전에 방문했다면 아무것도 하지 않고, 방문했다는 표시 남기고 큐에 삽입4. 큐가 빌때까지 2번을 반복 boj 1926 그림1.시작하는 칸을 큐에 넣고 표시남김 2.큐에서 원소 꺼내서 인접한 칸 3번에 대해 3번 진행 3. 해당칸을 이전에 방문했다면 아무것도 하지 않고, 방문했다는 표시 남기고 큐에 삽입 4. 큐가 빌때까지 2번을 반복   boj 1926 그림https://www.acmicpc.net/problem/1926fun main() = with(Scanner(System.`in`)) { val x = nextInt() val y = nextInt() val array: Arr..