Kotlin/코딩테스트

[프로그래머스] 개인정보 수집 유효기간 - kotlin

깨노비 2023. 3. 14. 01:07
728x90
반응형

고객의 약관 동의를 얻어서 수집된 1~n번으로 분류되는 개인정보 n개가 있습니다. 약관 종류는 여러 가지 있으며 각 약관마다 개인정보 보관 유효기간이 정해져 있습니다. 당신은 각 개인정보가 어떤 약관으로 수집됐는지 알고 있습니다. 수집된 개인정보는 유효기간 전까지만 보관 가능하며, 유효기간이 지났다면 반드시 파기해야 합니다.

class Solution {
    
    fun solution(today: String, terms: Array<String>, privacies: Array<String>): IntArray {
        var answer = mutableListOf<Int>()
        
        val curDate = today.split(".")
        val curDays = (curDate[0].toInt() * 12 * 28) + ((curDate[1].toInt() - 1) * 28) + curDate[2].toInt()

        val termMap = mutableMapOf<String, Int>()
        for (str in terms) {
            val term = str.split(" ")
            termMap[term[0]] = term[1].toInt() * 28
        }

        for ((idx, str) in privacies.withIndex()) {
            val dueDate = str.split(".", " ")
            val dueDays = (dueDate[0].toInt() * 12 * 28) + ((dueDate[1].toInt() - 1) * 28) + dueDate[2].toInt() + termMap[dueDate[3]]!!

            if (curDays >= dueDays) answer.add(idx+1)
        }

        return answer.toIntArray()
    }
}
728x90
반응형