99클럽 코테 스터디 26일차 TIL : 시뮬레이션

마늘맨·2024년 8월 16일
0

99클럽 3기

목록 보기
26/42

Notion에서 작성한 글이라, 여기에서 더 깔끔하게 보실 수 있습니다! 😮😊


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

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

Solution. O(N+M)O(N+M)

def convert(date, p=0):
    y, m, d = map(int, date.split('.'))
    return y*12*28 + (m+p)*28 + d

def solution(today, terms, privacies):
    td = convert(today)
    period = {k:int(v) for k, v in (t.split() for t in terms)}

    ret = []
    for n, p in enumerate(privacies):
        date, t = p.split()
        if td  > convert(date, period[t])-1: ret.append(n+1)
        
    return ret
  • 연, 월, 일을 하나의 Integer로 관리하면 유효기간을 계산하기도, 비교하기에도 편리하기 때문에 convert() 함수를 만들었다.
  • ret을 아예 [n+1 for n, p in enumerate(privacies) if td > convert(p[:-1], period[p[-1]])-1]로 한 줄로 만들 수도 있다.
    • 슬라이싱하는 부분의 의미가 한 눈에 들어오지 않아 split()을 이용하여 풀어썼다.

profile
안녕! 😊

0개의 댓글