코드카타 로또의 최고 순위와 최저 순위 문제 정답class Solution { fun solution(lottos: IntArray, win_nums: IntArray): IntArray { val m = lottos.count { it in win_nums } val z = lottos.count { it == 0 } fun getRank(m: Int): Int { return when (m) { 6 -> 1 5 -> 2 4 -> 3 3 -> 4 2 -> 5 else -> 6 ..
코드카타 기사단원의 무기 문제 정답class Solution { fun solution(number: Int, limit: Int, power: Int): Int { fun findDiv(n: Int): Int { val s = Math.sqrt(n.toDouble()).toInt() return (1..s).count { n % it == 0 } * 2 - (if (s * s == n) 1 else 0) } var divArr = IntArray(number) { findDiv(it + 1) } divArr.forEachIndexed { i, v -> if (v > limit) divArr..
코드카타 덧칠하기 문제 정답class Solution { fun solution(n: Int, m: Int, section: IntArray): Int { var pos = 0 var res = 0 for (i in section.indices) { if (pos 해당 문제는 그리디 알고리즘을 통해 해결할 수 있다. var pos = 0var res = 0pos는 페인트를 칠하기 시작하는 현재 위치,res는 페인트를 칠해야 되는 최소 횟수에 해당한다. for (i in section.indices) { if (pos 페인트를 칠해야 되는 구역을 순회하며 롤러의 위치가 해당 구역보다 뒤에 위치한다면 롤러의 위치를 해당구역에서 페인트를 칠..
코드카타 모의고사 문제 정답class Solution { fun solution(answers: IntArray): IntArray { val patterns = listOf( listOf(1, 2, 3, 4, 5), listOf(2, 1, 2, 3, 2, 4, 2, 5), listOf(3, 3, 1, 1, 2, 2, 4, 4, 5, 5) ) val scores = IntArray(3) for ((i, answer) in answers.withIndex()) { for ((j, pattern) in patterns.withIndex()) { ..
코드카타 카드 뭉치 문제 정답class Solution { fun solution(cards1: Array, cards2: Array, goal: Array): String { var a = 0 var b = 0 for (i in goal) { when { a a++ b b++ else -> return "No" } } return "Yes" }}각 단어를 goal배열에서 순차적으로 확인하며 두 카드 뭉치에서 차례대로 단어를 비교해준다. 카드를 순차적으로 배치하여 goal을 만들 수 있다면 "Yes"를,그렇지..
코드카타 2016년 문제 정답class Solution { fun solution(a: Int, b: Int): String { val m = listOf(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31) val w = listOf("FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU") var d = m.slice(0..a - 2).sum() + b - 1 return w[d % 7] }}각 달의 일수와 각 요일의 문자열값을 요소로 가지는 2개의 리스트를 선언한다음,주어진 수만큼 각 달의 일수를 더한 값을 이용해 해당하는 요일을 출력한다. val m = listOf(31, 2..
코트카타 명예의 전당 (1) 문제 정답class Solution { fun solution(k: Int, score: IntArray): IntArray { var res = IntArray(score.size) var kList = mutableListOf() for (i in score.indices) { kList.add(score[i]) kList.sortDescending() if (kList.size > k) kList.removeAt(k) res[i] = kList.last() } return res }}모든 점수를 포함하여 상위 k개의 점..
코드카타 콜라 문제 문제 문제가 좀 많이 길긴 한데 알고보면 그렇게 어려운 문제는 아니다. 정답class Solution { fun solution(a: Int, b: Int, n: Int): Int { var res: Int = 0 var num: Int = n while (num >= a) { val gb = num / a * b res += gb num = gb + num % a } return res }}while문 이용해서 받을 수 있는 총 콜라의 개수를 계산한다. 변수선언var res: Int = 0var num: Int = n받을 수 있는 총 콜라의 개수..