반응형
문제
간단한 구현문제이다.
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
반응형
'👨🏫ps > ❄️프로그래머스' 카테고리의 다른 글
[프로그래머스] 게임 맵 최단거리 (0) | 2023.03.16 |
---|---|
[프로그래머스] 숫자의 표현 [python] (0) | 2023.03.15 |
[프로그래머스] 신규 아이디 추천 [python] (0) | 2023.03.14 |
[프로그래머스] 성격 유형 검사하기 [python] (0) | 2023.03.14 |
[프로그래머스] 신고 결과 받기 [python] (0) | 2023.03.13 |