오늘의 문제 | 프로그래머스: 개인정보 수집 유효기간
확실히 마지막이 다가와서 그런지는 몰라도 실제 코딩테스트에 출제됐던 문제들이 조금씩 나온다. 사실 문제를 대충 읽어봤을 때 그리 어렵지 않아보이긴 한다.
기본적인 문자열 파싱/날짜 계산 정도의 난이도이다. 그래서 그냥 무작정 구현하기로 했다. 조건에 날짜가 다 28일까지만 되므로 윤년을 고려할 필요도 없어보인다. 어차피 코드도 금방짜고 항해99도 얼마 남지 않았으니 금방 풀어버리기 보다는 코드를 최대한 신경 써가며 짜보려한다.
def isExpired(today,extract_date,month):
ty,tm,td=map(int,today.split("."))
ey,em,ed=map(int,extract_date.split("."))
em+=month
for i in range(10):
if em>12:
em-=12
ey+=1
if ty>ey: return True
elif ty<ey: return False
else:
if tm>em: return True
elif tm<em: return False
else:
if td>=ed: return True
else: return False
def solution(today, terms, privacies):
terms_in_dict=dict()
# 약관이 몇 개월인지를 미리 딕셔너리 형태로 저장함.
for term in terms:
term_name,term_month=term.split()
terms_in_dict[term_name]=int(term_month)
# 모든 개인정보들의 마감 날짜를 미리 확인함.
expire = []
for num in range(len(privacies)):
priv_date,priv_term=privacies[num].split()
if isExpired(today,priv_date,terms_in_dict[priv_term]):
expire.append(num+1)
return expire
약간 문제 조건을 잘못 읽어서 틀리는 일이 조금 발생하긴 했지만, 그래도 이정도면 나쁘지 않았다고 생각한다. 물론 그리 효율적이지는 않은 코드지만 생각한 로직대로 마무리했다.
오늘의 회고
코딩테스트에서 쉬운 문제를 가져온지는 몰라도 솔직히 쉽다는 생각이 많이 들기는 했다. 코딩테스트를 대비하여 그리 어려운 문제까지 풀 필요가 있을까?라는 생각이 들다가도 이번 1년동안은 열심히 문제를 풀어보려 한다.
'일기장 > 항해99클럽 4기' 카테고리의 다른 글
99클럽 코테 스터디 35일차 TIL: 백트래킹 브루트포스 (2) | 2024.12.02 |
---|---|
99클럽 코테 스터디 33일차 TIL: 문자열 처리 구현 (1) | 2024.11.29 |
99클럽 코테 스터디 32일차 TIL: 부분 수열 DP 심화 (0) | 2024.11.28 |
99클럽 코테 스터디 31일차 TIL: 부분 수열 DP 심화 (1) | 2024.11.27 |
99클럽 코테 스터디 30일차 TIL: 부분 수열 DP (0) | 2024.11.26 |