분류 전체보기
-
프로그래머스 - 쇠막대알고리즘 문제 풀이 2020. 7. 28. 23:04
/* * 2020-07-28 * https://programmers.co.kr/learn/courses/30/lessons/42585 */ class IronBar { fun solution(arrangement: String): Int { /* val ironBarList = ArrayList() var answer = 0 var prev:Char? = null arrangement.forEach { if(it == '('){ ironBarList.add(1) } if(it == ')'){ if(prev == '('){ val openCount = ironBarList.removeAt(ironBarList.count()-1) - 1 if(openCount > ..
-
프로그래머스 - 탑알고리즘 문제 풀이 2020. 7. 27. 22:42
/* * 2020-07-27 * https://programmers.co.kr/learn/courses/30/lessons/42588?language=kotlin */ class Tower { fun solution(heights: IntArray): IntArray { val reversedHeights = heights.reversed() return reversedHeights.mapIndexed { i, h -> val index = reversedHeights.slice(0 + i + 1 until heights.count()).indexOfFirst { it > h } if (index > -1) { heights.count() - index - i - 1 } else { 0 } }.rever..
-
프로그래머스 - H-Index알고리즘 문제 풀이 2020. 7. 26. 23:34
아래와 같은 테스트케이스를 추가하고 실행해보는 것을 강력하게 추천한다. input output 5,5,5,5 4 class HIndex { fun solution(citations: IntArray): Int { var result = 0 val sortedList = citations.sortedDescending() val max = citations.max() ?: 0 for (i in 0..max) { val index = sortedList.indexOfLast { it >= i } + 1 if (index > result) { result = i } } return result } } fun main() { val result = HIndex().solution( // intArrayOf(3,..
-
프로그래머스 - 가장 큰 수알고리즘 문제 풀이 2020. 7. 24. 23:18
class LargestNumber { fun solution(numbers: IntArray): String { var answer = "" numbers.sortedWith(Comparator { n1, n2 -> val n1s = n1.toString() val n2s = n2.toString() when { n1s + n2s > n2s + n1s -> -1 n1s + n2s 1 else -> 0 } }).forEach { if (answer != "0" || it != 0) { answer += it } } return answer } } fun main() { val result = LargestNumber().solution( intArrayOf(3, 3, 753, ..
-
-
프로그래머스 - 베스트 앨범알고리즘 문제 풀이 2020. 7. 13. 22:45
최근 프로그래머스에 있는 베스트 앨범 문제를 풀어보았는 데다른 사람의 코드를 보고 아주 놀라서 정리해 보았다.아래의 코드로 결과가 나오는데 딱 보기에는 이해가 되지 않아서한줄씩 출력해본 결과를 정리했다.genres.indices.groupBy { genres[it] } .toList() .sortedByDescending { it.second.sumBy { plays[it] } } .map { it.second.sortedByDescending { plays[it] }.take(2) } .flatten() .toIntArray()genres.indices >>> indices: 0..4indicesReturns the range of valid indices for the array. Returns an..
-
[Kotlin] 고차 함수Kotiln 2020. 6. 30. 14:53
고차 함수 정의 고차 함수 는 다른 함수를 인자로 받거나 함수를 반환하는 함수이다. 표준 라이브러리 함수인 filter 는 술어 함수를 인자로 받으므로 고차 함수이다. 함수 타입 함수 타입을 정의하려면 함수 파라미터의 타입을 괄호 안에 넣고 그 뒤에 화살표 -> 를 추가한 다음, 함수의 반환 타입을 지정한다. (Int, String) -> Unit 함수 타입에서도 반환 타입을 nullable로 지정할 수 있다. val canReturnNull: (Int) -> Int? = {null} 함수 타입 전체가 null이 되게 선언할 수도 있다. val funOrNull: ((Int, Int) -> Int)? = null 함수 타입에서 파라미터 이름을 지정할 수도 있다. fun performRequest(url:..