[카카오 블라인드 채용 코딩테스트 2023] 개인정보 수집 유효기간 (JavaScript)
카카오의 2023년 블라인드 공개채용의 코딩테스트 문제가 공개되었습니다. 프로그래머스의 2023 KAKAO BLIND RECRUITMENT 문제팩 필터를 통해 찾아볼 수 있습니다.
🚀여기를 클릭하면 바로 이동할 수 있습니다. 공개된 문제 중 몇 가지 문제를 풀어 코드를 올려보려고 합니다.
제 코드는 가장 이상적인 해법이 아닙니다. 다만 저의 생각과 코드 작성의 방식을 공유하고자 글을 작성해봅니다.😋
문제
🚀개인정보 수집 유효기간
참고 링크 | 프로그래머스의 문제를 외부에 게시할 수 있나요?
풀이
1번 문제로 자주 나오는 데이터 변환 문제입니다. 몇 가지 주의사항만 주의해주면 어려움 없이 해결할 수 있는 문제입니다.
1. 해결 아이디어
날짜 환산해주기
일자를 오늘 기준으로 유효한지 파악하는 문제입니다. 먼저 기준 일자 단위를 정합니다. 시간의 최소단위가 일자이므로 일 기준으로 각 날짜들을 환산해줍니다. 단 제한사항으로 가장 이른 시작 연도는 2000년이며, 각 월은 28일입니다.
따라서 연도는 2001년을 1, 2010년을 10 등의 단위 연도로 바꿔주기 위해 주어진 연도에 2000을 빼줍니다. 또한, 각 개월은 28일을 곱해서 일 수를 구해줍니다. 따라서 구하게 될 변환 날짜는 다음과 같습니다.
환산 일자 = ((기준 연도 - 2000) * 12개월 * 28일) + 개월 * 28 + 일
정책 정리하기
각 정책들은 개월 수로 표현됩니다. 또한 정책의 이름은 스트링인 알파벳으로 주어집니다. 따라서 정책 이름을 키 값으로, 유효 개월 수를 밸류로 하는 객체로 접근하면 데이터 접근이 편할 것 같네요.
기타 유의사항
정책 유효 기한은 만으로 1년입니다. 따라서 기준 일자의 일자에서 하나 부족한 날까지 유효합니다. 가령 유효 기간이 12개월이고 보관 시작일이 2021년 1월 5일이라면 2022년 1월 4일까지가 유효한 기간입니다. 이는 친절하게 문제해서도 알려주고 있네요.
2. 코드
따라서 코드를 작성하면 다음과 같습니다.
|
|