새소식

인기 검색어

프로그래머스/Lv.1

[Swift] 개인정보 수집 유효기간

  • -
import Foundation

func solution(_ today:String, _ terms:[String], _ privacies:[String]) -> [Int] {
    
    var term = [String: Int]()
    
    // tems의 기간 계산
    terms.forEach {
        let t = $0.components(separatedBy: " ")
        term[t[0]] = Int(t[1])!
    }
    
    return privacies.map {
        // 수집된 날짜와 타입 분할
        let t = $0.components(separatedBy: " ")
        
        // 날짜 나누기
        var result = t[0].components(separatedBy: ".").map {
            Int($0)!
        }
        
        // 유효날짜는 수집된날짜로부터 -1 만약하루를 뺏을때 0일이라면 달을 하나 줄이고 일수는 마지막날로
        result[2] -= 1
        if result[2] == 0 {
            result[1] -= 1
            result[2] = 28
        }
        
        // 수집된 달에다가 유효기간을 더해서 12월보다 크면 년수를 업
        result[1] += term[t[1]]!
        
        if result[1] > 12 {
            result[0] += result[1] / 12
            result[1] = result[1] % 12
            
            if result[1] == 0 {
                result[1] = 12
                result[0] -= 1
            }
        }
        
        return String(format: "%d.%02d.%02d", result[0], result[1], result[2])
    }.enumerated().filter {
        $0.element < today
    }.map {
        $0.offset + 1
    }
}

 

'프로그래머스 > Lv.1' 카테고리의 다른 글

[Swift] 기사단원의 무기  (0) 2023.02.12
[Swift] 과일 장수  (0) 2023.02.12
[Swift] 가장 가까운 같은 글자  (0) 2023.02.12
[Swift] 가운데 글자 가져오기  (0) 2023.02.12
[Swift] 2016년  (0) 2023.02.12
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.