Kotlin/Kotlin문제풀이

Programmers Kotlin 문제 풀이 31 ~ 40

Happy._. 2024. 5. 7. 06:25

수박수박수박수박수박수?

https://school.programmers.co.kr/learn/courses/30/lessons/12922

class Solution {
    fun solution(n: Int): String {
        var result = ""
        
        for (num in 1..n) {
            if (num % 2 == 0) result += "박" else result += "수"
        }
        
        return result
    }
}

 

내적

https://school.programmers.co.kr/learn/courses/30/lessons/70128

class Solution {
    fun solution(a: IntArray, b: IntArray): Int {
        val resultArray = IntArray(a.size)
        
        a.forEachIndexed { index, n -> resultArray[index] = n * b[index] }
    
        return resultArray.sum()
    }
}


약수의 개수와 덧셈

https://school.programmers.co.kr/learn/courses/30/lessons/77884

class Solution {
    fun solution(left: Int, right: Int): Int {
        val itemList = arrayListOf<Int>()
        var count = 0
        
        for (num1 in left..right) {
            for (num2 in 1..num1) {
                if (num1 % num2 == 0) {
                    count++
                }
            }
            
            if (count % 2 == 0) {
                itemList.add(num1)                
            } else {
                itemList.add(num1 * (-1))
            }
            
            count = 0
        }
        
        return itemList.sum()       
    }
}


문자열 내림차순으로 배치하기

https://school.programmers.co.kr/learn/courses/30/lessons/12917

class Solution {
    fun solution(s: String): String {
        return s.toList().sorted().reversed().joinToString("")
    }
}


부족한 금액 계산하기

https://school.programmers.co.kr/learn/courses/30/lessons/82612

class Solution {
    fun solution(price: Int, money: Int, count: Int): Long {
        val result = money.toLong() - 1.rangeTo(count).map{it * price.toLong()}.sum()
	    if (result > 0) return 0L else return (result * (-1))
    }
}

 

문자열 다루기 기본

https://school.programmers.co.kr/learn/courses/30/lessons/12918

class Solution {
    fun solution(s: String): Boolean {
        if (s.length == 4 || s.length == 6) {
            val length = s.filter { '0'.rangeTo('9').contains(it) }.length
        
            if (length == s.length) {
                return true
            }   
        }
        
        return false
    }
}


행렬의 덧셈

https://school.programmers.co.kr/learn/courses/30/lessons/12950

class Solution {
    fun solution(arr1: Array<IntArray>, arr2: Array<IntArray>): Array<IntArray> {
        val result = Array(arr1.size) { IntArray(arr1[0].size) }
        
        arr1.forEachIndexed { index1, ints -> 
            val tempArray = IntArray(ints.size)
            
            ints.forEachIndexed { index2, it ->
                tempArray[index2] = it + arr2[index1][index2]
            }
            
            result[index1] = tempArray
        }
        
        return result
    }
}

 

직사각형 별찍기

https://school.programmers.co.kr/learn/courses/30/lessons/12969

fun main(args: Array<String>) {
    val (a, b) = readLine()!!.split(' ').map(String::toInt)
    for(i in 1..b) {        
        for(j in 1..a) {
         print("*")   
        }
        println()
    }
}


최대공약수와 최소공배수

https://school.programmers.co.kr/learn/courses/30/lessons/12940

class Solution {
    fun solution(n: Int, m: Int): IntArray {
        val intArray = IntArray(2)

        // 최대 공약수 - 작은 수를 기준으로 나누기 진행
        for (i in n downTo 1) {
            if (n % i == 0 && m % i == 0) {
                intArray[0] = i
                break
            }
        }

        // 최소 공배수 - 큰 수를 기준으로 곱하기 진행
        for (i in 1..m) {
            if (m * i % n == 0) {
                intArray[1] = m * i
                break
            }
        }
        
        return intArray
    }
}


3진법 뒤집기
https://school.programmers.co.kr/learn/courses/30/lessons/68935

class Solution {
    fun solution(n: Int): Int {
        return n.toString(3).reversed().toInt(3)
    }
}