프로그래머스
[프로그래머스] Lv.1 개인정보 수집 유효기간 [Python, 파이썬] KAKAO
YoonJuHan
2023. 10. 15. 17:50
- 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/150370
- 🔑 년.월.일을 일 수로 변환
- 한 달 = 28일로 고정이기 때문에 쉽게 변환 가능
- 약관 종류에 대한 유효 기간은 딕셔너리로 저장
- 유효 기간도 일 수로 변환해서 저장
- ex) "A 6" = "A" : 168
- 오늘 날짜 >= 개인정보 수집 날짜 + 약관 유효 기간
- 약관 만료일이 지났으면 파기
- 끝
def day(d): # 년월일 -> 일
d = list(map(int, d.split(".")))
d = d[0] * 336 + d[1] * 28 + d[2]
return d
def solution(today, terms, privacies):
answer = []
today = day(today) # 오늘 날짜를 일 수로 변환
terms_dict = dict() # 약관 종류 딕셔너리에 저장
for i in terms:
terms_dict[i[0]] = int(i[2:]) * 28 # 약관 종류 : 유효 기간 (일)
for i in range(len(privacies)):
d, t = privacies[i].split() # 날짜, 약관 종류
endDay = day(d) + terms_dict[t] # 약관 만료일 계산
if today >= endDay: # 약관 만료일이 지났으면
answer.append(i+1) # 파기
return answer