728x90
반응형
문제 : 개인정보 수집 유효기간
풀이 방법
월 마다 일 수가 28일로 고정되어 있으니 일 단위로 계산을 하기가 실제 날짜 단위보다 쉽게 할 수 있다. 일 단위로 계산 해야할 날짜를 쪼개서 개인정보 날짜랑 비교를 하면 된다.
소스 코드
def solution(today, terms, privacies):
answer = []
# terms dict
privacy_cat_dict = dict()
for i in terms:
i = i.split()
privacy_cat_dict[i[0]] = i[1] # {'A': '6', 'B': '12', 'C': '3'}
today_date = trans_date(today.split('.')) # 679551
for i, privacy in enumerate(privacies):
privacy = privacy.split() # ['2021.05.02', 'A']
privacy_date_str = privacy[0] # '2021.05.02'
cat = privacy[1] # 'A'
privacy_date = trans_date(privacy_date_str.split('.')) # 678707
if (privacy_date + (int(privacy_cat_dict[cat]) * 28)) <= today_date:
answer.append(i+1)
return answer
def trans_date(date: list):
y, m, d = date
cal_date = (int(y) * 12 + int(m)) * 28 + int(d)
return cal_date
728x90
반응형
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 1Level, Java] 신고 결과 받기 (0) | 2023.03.17 |
---|---|
[프로그래머스 1Level, Python3] 신고 결과 받기 (0) | 2023.03.17 |
[프로그래머스 Level 2, Java] 삼각 달팽이 (0) | 2023.01.15 |
[프로그래머스 Level 2, Java] 이진 변환 반복하기 (0) | 2023.01.15 |
[프로그래머스 Level 2, Jave] 귤 고르기 (0) | 2023.01.12 |