Kelly's journey to a coding master
2023 카카오 신입 공채 1차 온라인 코딩 테스트 - 개인정보 수집 유효기간 본문
문제
https://school.programmers.co.kr/learn/courses/30/lessons/150370
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
KAKAO TECH 홈페이지의 문제 해설
각 개인 정보가 수집된 날과 약관 종류로부터 보관 가능 날짜를 구하고, 오늘 날짜가 보관 가능 날짜를 지났는지를 구하면 되는 문제입니다. 개인 정보의 유효기간은 해시 테이블 등의 방법으로 구할 수 있습니다.
날짜를 비교할 때 YYYY.MM.DD 형태 그대로 비교해도 되지만, 2000년 1월 1일로부터 며칠이 흘렀는지를 계산하면 정수 형태로 쉽게 비교할 수 있습니다.
풀이
년, 월, 일을 모두 일 수로 변환하여 더하고, 비교하였다.
def solution(today, terms, privacies):
answer = []
today = list(map(int, today.split('.')))
terms_dict = {}
for term in terms:
type, period = term.split()
terms_dict[type] = int(period) * 28
for i in range(len(privacies)):
start_date, type = privacies[i].split(' ')
start_date_lst = list(map(int, start_date.split('.')))
start_date_day = start_date_lst[0] * 336 + start_date_lst[1] * 28 + start_date_lst[2]
today_day = today[0] * 336 + today[1] * 28 + today[2]
if (start_date_day + terms_dict[type] <= today_day):
answer.append(i+1)
return answer
짚고 넘어갈 것!
리스트를 묶음으로 반환받지 않고 unpacking해서 각각의 요소를 변수에 따로 저장해서 반환받을 수 있음.
type, period = term.split()
'Algorithm' 카테고리의 다른 글
백준 18808번 스티커 붙이기 (0) | 2024.03.20 |
---|---|
백준 1926번 그림 (1) | 2024.02.09 |
백준 1956번 운동 (0) | 2023.08.17 |
2020 카카오 블라인드 채용 - 가사 검색 (0) | 2022.07.10 |
2021 카카오 블라인드 채용 - 순위 검색 (0) | 2022.07.10 |