문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
메모
// 날짜 데이터에 월 더하기
let today = "2019.01.05";
today = new Date(today);
const todayPlus6Month = new Date(today.setMonth(today.getMonth() + 6));
console.log(todayPlus6Month); // 2019-07-04T15:00:00.000Z
정답
function solution(today, terms, privacies) {
let answer = [];
// 개인정보 수집일과 각각의 약관 유효기간을 찾아 더한다
// Date 형식으로 오늘 날짜(today)와 만료일(expirationDay)을 비교한다
// 오늘 날짜가 만료일보다 크거나 같은 경우 유효한 약관에 해당한다
const expirationDateChecker = privacies.map((privacy, index) => {
const tmp = privacy.split(" ");
const expirationPeriod = Number(terms.filter(x => x.includes(tmp[1]))[0].split(" ")[1]);
const collectionDay = new Date(tmp[0]);
const expirationDay = new Date(
collectionDay.setMonth(collectionDay.getMonth() + expirationPeriod)
);
if (new Date(today) >= expirationDay) answer.push(index + 1);
});
return answer;
}