코틀린
-
프로그래머스 - 타겟 넘버알고리즘 문제 풀이 2020. 12. 9. 00:00
풀이 /* * 2020-12-08 * https://programmers.co.kr/learn/courses/30/lessons/43165 */ var answer = 0 fun targetNumber(numbers: IntArray, target: Int): Int { answer = 0 addNumber(0, numbers, 0, target) return answer } tailrec fun addNumber(sum: Int, numbers: IntArray, index: Int, target: Int) { if (numbers.count() == index) { if (sum == target) answer++ } else { addNumber(sum + numbers[index], numbers..
-
kotlin gradle 프로젝트에 ktlint 적용하기Kotiln 2020. 11. 7. 22:15
ktlint 적용 ktlint 에서 권장하는대로 Gradle 플러그인을 사용하여 적용하겠습니다. Kotlinter Gradle 을 사용합니다. build.gradle.kts 에 플러그인을 추가합니다. plugins{ id("org.jmailen.kotlinter") version "3.2.0" }설정 Kotlinter Gradle 플러그인은 따로 린트 설정을 할 필요가 없습니다. 기본적으로 아래와 같은 설정이 적용됩니다. ignoreFailures = false indentSize = 4 reporters = arrayOf("checkstyle", "plain") experimentalRules = false disabledRules = emptyArray()설정을 변경하고 싶다면 .editorconfi..
-
프로그래머스 - 이중우선순위큐알고리즘 문제 풀이 2020. 11. 7. 19:41
풀이 import java.util.* /* * 2020-11-07 * https://programmers.co.kr/learn/courses/30/lessons/42628 */ fun solveDoublePriorityQueue(operations: Array): IntArray { val minQueue = PriorityQueue { n1, n2 -> n1 - n2 } val maxQueue = PriorityQueue { n1, n2 -> n2 - n1 } operations.forEach { val (arg, numStr) = it.split(" ") val num = numStr.toInt() if (arg == "I") { minQueue.add(num) maxQueue.add(num) } ..
-
프로그래머스 - 카펫카테고리 없음 2020. 9. 2. 22:10
import kotlin.test.assertEquals /* * 2020-09-02 * https://programmers.co.kr/learn/courses/30/lessons/42842 */ class Carpet { fun solution(brown: Int, yellow: Int): IntArray { var answer = intArrayOf() for (i in 1..yellow) { for (j in 1..yellow) { if (i >= j && i * j == yellow && (i + 2) * (j + 2) - yellow == brown) { return intArrayOf(i + 2, j + 2) } } } return answer } } fun main(args: Array) {..
-
프로그래머스 - 소수 찾기알고리즘 문제 풀이 2020. 9. 2. 21:30
import kotlin.test.assertEquals /* * 2020-09-02 * https://programmers.co.kr/learn/courses/30/lessons/42839 */ class FindPrimeNumber { fun solution(numbers: String): Int { val numberValues = numbers.map { it.toString() } val numbersGroup = numbers.groupBy { it } val numberList = ArrayList() val newNumberList = ArrayList() for (i in 0 until numbers.count()) { if (numberList.isEmpty()) { numberValu..
-
프로그래머스 - 모의고사알고리즘 문제 풀이 2020. 8. 24. 21:53
/* * 2020-08-24 * https://programmers.co.kr/learn/courses/30/lessons/42840 */ class PracticeTest { fun solution(answers: IntArray): IntArray { val first = listOf(1, 2, 3, 4, 5) val second = listOf(2, 1, 2, 3, 2, 4, 2, 5) val third = listOf(3, 3, 1, 1, 2, 2, 4, 4, 5, 5) var firstCnt = 0 var secondCnt = 0 var thirdCnt = 0 answers.forEachIndexed { i, answer -> if (answer == first[i % first.count()]..
-
프로그래머스 - 프린터알고리즘 문제 풀이 2020. 8. 23. 12:33
import java.util.LinkedList /* * 2020-08-23 * https://programmers.co.kr/learn/courses/30/lessons/42587 */ class Printer { fun solution(priorities: IntArray, location: Int): Int { val queue = LinkedList(priorities.toList()) var index = location var answer = 1 while (!queue.isEmpty()) { val priority = queue.pop() val checkPriority = queue.find { it > priority } if (checkPriority !== null) { // 가장 ..
-
프로그래머스 - 다리를 지나는 트럭알고리즘 문제 풀이 2020. 8. 8. 20:37
/* * 2020-08-08 * https://programmers.co.kr/learn/courses/30/lessons/42583 */ class TruckPassingTheBridge { fun solution(bridge_length: Int, weight: Int, truck_weights: IntArray): Int { var passingList = ArrayList() var time = 0 val truckList = truck_weights.toMutableList() var truck = truckList.removeAt(0) do { time++ passingList = passingList.filter { truckPair -> truckPair.second < bridge_len..