티스토리 뷰
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
문제출처
728x90
반응형
'Study > Coding Test' 카테고리의 다른 글
[백준 BOJ / Python] 1976번 트리의 지름 (DFS) (0) | 2024.04.12 |
---|---|
[백준 BOJ / Python] 1202번 보석 도둑 (0) | 2024.04.08 |
[Programmers / Python] 미로 탈출 명령어 (DFS) (0) | 2023.11.26 |
[백준 BOJ / Python] 13422번 도둑 (0) | 2023.05.16 |
[백준 BOJ / Python] 2749번 피보나치 수 3 (Pisano Period) (0) | 2023.04.30 |
댓글
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
TAG
- boj
- 백준
- padding mask
- greedy
- 구현
- 코딩테스트
- 코딩테스트실력진단
- COLAB
- 그리디
- FastAPI
- Transformer
- MySQL
- 알고리즘
- dfs
- Prefix sum
- pytorch
- 트랜스포머
- python
- 파이썬
- DP
- disjoint set
- lis
- 수학
- 이분탐색
- BFS
- Look-ahead Mask
- 누적합
- Algorithm
- 분리집합
- 코드트리
링크