티스토리 뷰
728x90
반응형
문제
오늘 날짜가 주어지고, 약관에 따라 개인정보의 유효기간이 지나 파기해야 하는 개인정보의 번호를 리스트로 출력하는 문제이다.
풀이
- 약관에 따라 유효기간이 다르고 개인정보가 수집된 날짜가 다르기 때문에 만료 기간을 계산하여 오늘 날짜와 비교하면 된다.
- 먼저 약관의 정보는 빠른 속도로 불러오기 쉽도록 dictionary에 담는다.
- 날짜를 일수로 변환하는 to_days 함수를 통해 날짜를 비교한다.
- (주의) 개인정보 수집 날짜와 약관 유효기관을 더한 일수에 1을 빼어야 유효기간 만료일이다.
Python 코드
# 날짜를 일수로 변환
def to_days(date):
y, m, d = map(int, date.split("."))
return y*12*28 + m*28 + d
def solution(today, terms, privacies):
answer = []
today = to_days(today)
# 약관 정보
term = dict()
for t in terms:
type_, period = t.split()
term[type_] = int(period)*28
# 개인정보 만료기간과 오늘 일수를 비교하여 파기 목록에 추가
for idx, p in enumerate(privacies):
numb = idx+1
date, type_ = p.split()
# 오늘보다 만료기간이 짧으면 파기해야 한다.
if to_days(date) + term[type_] -1 < today:
answer.append(numb)
return answer
문제출처
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
728x90
반응형
'Study > Coding Test' 카테고리의 다른 글
[백준 BOJ / Python] 1976번 트리의 지름 (DFS) (0) | 2024.04.12 |
---|---|
[백준 BOJ / Python] 1202번 보석 도둑 (0) | 2024.04.08 |
[프로그래머스 / Python] 미로 탈출 명령어 (DFS) (0) | 2023.11.26 |
[백준 BOJ / Python] 2473번 세 용액 (0) | 2023.08.09 |
[프로그래머스 / Java] 신고 결과 받기 (0) | 2023.07.31 |
댓글