일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Poll
- indices
- Util
- dp
- 2020
- lastIndex
- 알고리즘
- contentToString
- Main
- hackerrank
- PriorityQueue
- dynamic programming
- solution
- programmers
- foreach
- Queue
- sortedBy
- Developer
- 프로그래머스
- Java
- intarray
- heap
- report
- 동적계획법
- booleanarray
- 2D Array
- Recursion
- Kotlin
- GREEDY
- 코틀린
- Today
- Total
목록Kotlin (22)
Code in

** 중간에 Intelli J Kotlin을 업데이트하고 나서 에러가 났었는데 에러 내용: Kotlin: [Internal Error] java.rmi.UnmarshalException: ~~~ Build -> Rebuild Project 하고 나서 에러가 해결됐어요! 프로그래머스 해시부분 위장 문제입니다. IntelliJ에서의 풀이입니다. Hash를 쓰려고 노력했습니다! 실제로 HashMap을 출력하면 다음 처럼 출력됩니다. {-1290360528=1, -1115211921=2} {3135069=3} val clothes: Array = arrayOf( arrayOf("yellow_hat", "headgear"), arrayOf("blue_sunglasses", "eyewear"), arrayOf("g..

프로그래머스 깊이/너비 우선 탐색 여행경로 문제입니다. 프로그래머스에서의 풀이입니다. import java.util.Stack class Solution { val path: MutableList = mutableListOf() val stack: Stack = Stack() fun solution(tickets: Array): Array { tickets.sortWith(compareBy({ it[0] }, { it[1] })) val usedTicket = BooleanArray(tickets.size) { false } for (i in tickets.indices) { if (tickets[i][0] == "ICN") { usedTicket[i] = true stack.push("ICN") sta..

프로그래머스 깊이/너비 우선 탐색 단어 변환 문제입니다. IntelliJ에서의 풀이입니다. import java.util.* val begin = "hit" val target = "cog" val words = arrayOf("hot", "dot", "dog", "lot", "log", "cog") fun solution(begin: String, target: String, words: Array): Int { var answer = 0 if (!words.contains(target)) return 0 val que:Queue = LinkedList() words.forEach { que.add(it) } var curstr: String = begin var quep: String = que.po..

프로그래머스 깊이/너비 우선 탐색 네트워크 문제입니다. IntelliJ에서의 풀이입니다. val n = 3 val computers = arrayOf(intArrayOf(1, 1, 0), intArrayOf(1, 1, 0), intArrayOf(0, 0, 1)) val computers2 = arrayOf(intArrayOf(1, 1, 0), intArrayOf(1, 1, 1), intArrayOf(0, 1, 1)) fun solution(n: Int, computers: Array): Int { var answer = 0 val visited = Array(n) { BooleanArray(n){false} } for (i in 0 until n){ if (!visited[i][i]){ network(c..

프로그래머스 깊이/너비 우선 탐색 타깃 넘버 문제입니다. IntelliJ에서의 풀이입니다. val numbers: IntArray = intArrayOf(1, 1, 1, 1, 1) val target: Int = 3 fun solution(numbers: IntArray, target: Int): Int { val arr: ArrayList = ArrayList() recursion(0, numbers, numbers[0], target, arr) recursion(0, numbers, numbers[0]*-1, target, arr) return arr.size } fun recursion(curIndex: Int, numbers: IntArray, curNum: Int, target: Int, arr..

프로그래머스 동적계획법(Dynamic Programming) N으로 표현 문제입니다. IntelliJ에서의 풀이입니다. import kotlin.math.pow val N = 5 val N2 = 2 val N3 = 4 val number = 12 val number2 = 11 val number3 = 17 val N4 = 1 val number4 = 11111 fun solution(N: Int, number: Int): Int { data class ns(val N: Int, val C: Int) val candidate: MutableSet = mutableSetOf(ns(N, 1)) // N 1번 사용한 상태로 시작 var tmp1: ns var tmp2: ns var tmp3: ns var las..

프로그래머스 탐욕법 섬 연결하기 문제입니다. IntelliJ에서의 풀이입니다. val costs: Array = arrayOf( intArrayOf(0, 1, 5), intArrayOf(0, 3, 2), intArrayOf(0, 4, 3), intArrayOf(2, 5, 3), intArrayOf(1, 4, 1), intArrayOf(3, 4, 10), intArrayOf(1, 2, 2), intArrayOf(4, 5, 4) ) val n = 6 // 11 val costs2: Array = arrayOf( intArrayOf(0, 1, 5), intArrayOf(1, 2, 3), intArrayOf(2, 3, 3), intArrayOf(3, 1, 2), intArrayOf(3, 0, 4) ) val n..

프로그래머스 탐욕법 부분 조이스틱 문제입니다. IntelliJ에서의 풀이입니다. import kotlin.math.abs val name: String = "BBAABB" // 'A': 65 ~ 'Z': 90 // A B C D E F G H I J K L M N O P Q R S T U V W X Y Z // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 12 11 10 9 8 7 6 5 4 3 2 1 fun solution(name: String): Int { var answer = 0 // 알파벳을 바꿀 때 최적화, 이동할 때 최적화 2개로 나누겠습니다. // 알파벳 변경 시의 최적화 var current: Int name.forEach { current = it.toInt() answe..
완전 탐색 알고리즘 - Brute Force : 모든 경우의 수를 확인하여 답을 찾아내는 알고리즘. BF는, 모든 경우의 수를 확인하기 때문에 성공하면 100% 정확한 답을 찾아낼 수 있다. 만들기가 비교적 쉽고 병렬 작업이 가능하다는 장점을 가지고 있지만, 시간적인 측면에서는 비효율적이라는 단점을 가지고 있다. 탐색해야 할 요소들이 많은 경우에는 보다 효율적인 방법을 찾아서 사용하는 것이 좋겠지만, 개수가 정해져 있거나 적은 경우에는 완전 탐색을 사용하여 보다 쉽고 정확하게 답을 구할 수 있다. 완전 탐색을 구현하기 위해서는, 1. 반복문을 사용하거나 (for, while) 2. 재귀 함수를 사용할 수 있다. (return function / 같은 함수 호출의 반복) 재귀 함수의 경우, 더 이상 함수를..

프로그래머스 탐욕법(Greedy) 큰 수 만들기 문제입니다. IntelliJ에서의 풀이입니다. var k: Int = 4 val number: String = "4177252841" fun solution(number: String, k: Int): String { val str: StringBuilder = StringBuilder(number) // String에 비해서 시간이 대략 1/6으로 감소. var i = 0 var kk = k // k는 val이라서 var로 다시 저장. OOP를 위한 것? var len = str.length - 1 while (i = str[i + 1..