프로그래머스
[프로그래머스][2023 KAKAO BLIND RECRUITMENT][개인정보 수집 유효기간]
끝까지 처음처럼
2023. 1. 26. 17:02
728x90
class Solution {
fun solution(today: String, terms: Array<String>, privacies: Array<String>): IntArray {
var answer: IntArray = intArrayOf()
var termsMap = mutableMapOf<String,Int>()
terms.forEach{
termsMap.put(it.split(" ")[0], it.split(" ")[1].toInt()*28)
}
var todayCheck = 0
todayCheck += today.split(".")[0].toInt()*12*28
todayCheck += today.split(".")[1].toInt()*28
todayCheck += today.split(".")[2].toInt()
for(i in 0 .. privacies.size-1){
var day = 0
day += privacies[i].split(".")[0].toInt()*12*28
day += privacies[i].split(".")[1].toInt()*28
day += privacies[i].split(".")[2].split(" ")[0].toInt()
var check = privacies[i].split(".")[2].split(" ")[1]
if(todayCheck - day >= termsMap.get(check)!!) answer += i+1
}
return answer
}
}
해당문제는 지문을 잘 보면 한달을 모두 28일로 일괄계산하기에 주어진 자료들을 적절히 split() 함수를 사용하여 분리 시키면 금방 풀 수 있는 문제였습니다. kotlin 및 코딩테스트를 공부한지 얼마 지나지 않았을때 경험삼아 봤었는데 해당 문제만 통과했던 슬픈기억이 떠오르는 문제였습니다ㅠㅜ
상기 코드의 실행결과 입니다.
테스트 1 〉 | 통과 (16.38ms, 63.5MB) |
테스트 2 〉 | 통과 (23.04ms, 64.2MB) |
테스트 3 〉 | 통과 (17.53ms, 64.4MB) |
테스트 4 〉 | 통과 (19.15ms, 63.5MB) |
테스트 5 〉 | 통과 (25.44ms, 66.5MB) |
테스트 6 〉 | 통과 (19.83ms, 63.2MB) |
테스트 7 〉 | 통과 (23.92ms, 63MB) |
테스트 8 〉 | 통과 (20.71ms, 63.7MB) |
테스트 9 〉 | 통과 (23.38ms, 63.9MB) |
테스트 10 〉 | 통과 (23.77ms, 63.9MB) |
테스트 11 〉 | 통과 (21.44ms, 64.2MB) |
테스트 12 〉 | 통과 (26.67ms, 64.5MB) |
테스트 13 〉 | 통과 (17.88ms, 63.7MB) |
테스트 14 〉 | 통과 (17.41ms, 64.3MB) |
테스트 15 〉 | 통과 (17.49ms, 64MB) |
테스트 16 〉 | 통과 (28.31ms, 63.9MB) |
테스트 17 〉 | 통과 (17.61ms, 63.8MB) |
테스트 18 〉 | 통과 (17.33ms, 63.7MB) |
테스트 19 〉 | 통과 (25.39ms, 63.7MB) |
테스트 20 〉 | 통과 (17.36ms, 63.2MB) |