👨🏫ps/❄️프로그래머스
[프로그래머스] 개인정보 수집 유효기간 [Python]
peacekim
2023. 3. 12. 22:14
반응형
문제
간단한 구현문제이다.
python으로 class를 처음 써봐서 버벅거려서 시간이 좀 걸렸다,,,
시간복잡도는 O(n)이다
👨💻코드
def solution(today, terms, privacies):
answer = []
tYear, tMon, tDay = today.split(".")
tod = Date(tYear, tMon, tDay)
dates = []
t = {}
for term in terms:
a, m = term.split(" ")
t[a] = int(m)
for privacy in privacies:
date, a = privacy.split(" ")
aYear, aMon, aDay = date.split(".")
dates.append(Date(aYear, aMon, aDay).plus(t[a]))
for idx, date in enumerate(dates):
if date.isLaterDate(tod) == False :
answer.append(idx + 1)
return answer
class Date:
def __init__(self, year, mon, day):
self.year = int(year)
self.mon = int(mon)
self.day = int(day)
def plus(self, mon):
self.mon += mon
while self.mon > 12:
self.year += 1
self.mon -= 12
return self
def isLaterDate(self, date):
if self.year == date.year:
if self.mon == date.mon:
if self.day == date.day:
return False
elif self.day < date.day:
return False
else:
return True
elif self.mon < date.mon:
return False
else:
return True
elif self.year < date.year:
return False
else:
return True
반응형