[프로그래머스] 개인정보 수집 유효기간 Lv.1 - [파이썬/python]
https://school.programmers.co.kr/learn/courses/30/lessons/150370
def date_comparison(expiration_date, today):
#유효기간 남았으면 True 리턴
#유효기간 끝났으면 False 리턴
if expiration_date[0] > today[0]: #year 비교
return True
if expiration_date[0] == today[0] and expiration_date[1] > today[1]: #month 비교
return True
if expiration_date[0] == today[0] and expiration_date[1] == today[1] and expiration_date[2] > today[2]: #day 비교
return True
return False
def solution(today, terms, privacies):
result = []
i = 1
today = list(map(int,today.split(".")))
#2022.05.19문자열을 "."으로 나눈 후 list안에 int형으로 바꿔 넣기
#[2022, 5, 19]
expiration = {term[0]:int(term[2:]) for term in terms}
#유효기간 dict 예) {"A" : 3, "B" : 12, "C" : 3}
for pri in privacies:
pri = pri.split(" ")
#['2021.05.02', 'A']
pri_date = list(map(int,pri[0].split(".")))
#[2021, 5, 2]
pri_date[1] += expiration[pri[1]]
#pri_date의 month에 유효기간 더하기
#[2021, 5+a, 2]
if (pri_date[1] > 12):
#month에 유효기간 더했을 때 12 넘을시
if (pri_date[1] % 12 == 0):# month가 12의 배수인경우
pri_date[0] += (pri_date[1] // 12) - 1 #year에 month를 12나눈 몫-1 만큼 더하기
pri_date[1] = 12 #month는 12고정
else:
pri_date[0] += pri_date[1] // 12 #year에 month로 12나눈 몫 만큼 더하기
pri_date[1] %= 12 #month는 12로 나눈 나머지 넣기
if date_comparison(pri_date, today) == False : #유효기간 지났을 시
result.append(i) # result에 i 추가
i += 1
return result
728x90
'코딩테스트' 카테고리의 다른 글
[프로그래머스] 평행 - Lv.0 (32) | 2023.08.13 |
---|---|
[프로그래머스] 정수를 나선형으로 배치하기 - Lv.0 (24) | 2023.08.13 |
[프로그래머스] 옹알이 (2) - Lv.1 (0) | 2023.08.11 |
[프로그래머스] 옹알이 (1) - Lv.0 (2) | 2023.08.10 |
[프로그래머스] 나머지가 1이 되는 수 찾기 - Lv.1 (22) | 2023.08.10 |