알고리즘

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

hminor 2023. 6. 9. 00:23
# 성공

def solution(today, terms, privacies):
    year, month, day = map(int,today.split('.'))
    dic = {i.split(' ')[0]: int(i.split(' ')[1]) for i in terms}
    result = []
    for idx, i in enumerate(privacies):
        full_year, tm = i.split(' ')
        y, m, d = map(int,full_year.split('.'))
        if (year*12*28+month*28+day)-(y*12*28+(dic[tm]+m)*28+d) >= 0: result.append(idx+1)
    return result

 

# 런타임 에러 

from datetime import datetime

def solution(today, terms, privacies):
    year, month, day = map(int,today.split('.'))
    dic = {i.split(' ')[0]: int(i.split(' ')[1]) for i in terms}
    result = []

    for i in range(len(privacies)):
        full_year, tm = privacies[i].split(' ')
        y, m, d = full_year.split('.')
        if int(m)+dic[tm] > 12:
            y = int(y)+(int(m)+dic[tm])//12
            if (int(m)+dic[tm])%12 < 10: m = (int(m)+dic[tm])%12
            else: m = (int(m)+dic[tm])%12
        else:
            if (int(m)+dic[tm])%12 < 10: m = int(m)+dic[tm]
            else: m = int(m)+dic[tm]
        date_to_compare = datetime(int(y), m, int(d))
        now = datetime(year, month, day)
        if (now -date_to_compare).days >= 0:
            result.append(i+1)
    return result