개인정보 수집 유효기간
Lv. 1
Solution
export function validPrivacies(today: string, terms: string[], privacies: string[]): number[] {
const getDay = (dayString: string) => {
const [year, month, day] = dayString.split('.').map((v) => parseInt(v));
return year * 12 * 28 + month * 28 + day;
};
const isExpired = (privacy: string, validDay: number) => {
const [startDay, term] = privacy.split(' ');
const expirationDay = getDay(startDay) + expirations[term];
return expirationDay <= validDay;
};
const validDay = getDay(today);
const expirations = Object.fromEntries(
terms.map((term) => {
const [type, month] = term.split(' ');
return [type, parseInt(month) * 28];
}),
);
const answer: number[] = [];
privacies.forEach((privacy, i) => {
if (isExpired(privacy, validDay)) {
answer.push(i + 1);
}
});
return answer;
}