Open ericagong opened 1 year ago
⭐ 날짜나 시간 계산 시에는 반드시, 최소 단위로 변환하여 차이를 계산한 뒤, 단위별로 재계산 ⭐ 식을 세울 때, <인지 <= 인지가 애매한 경우가 있다면, 일단 구현 한 뒤, 디버깅 시 확인!!!
<
<=
개인정보 수집 유효기간
// https://school.programmers.co.kr/learn/courses/30/lessons/150370
function solution(today, terms, privacies) { // 오늘 날짜 계산 const [yy, mm, dd] = today.split("."); const CURR = Number(yy) 12 28 + Number(mm) * 28 + Number(dd);
// 개인 정보 타입별 유효기간 계산 let dict = {}; terms.forEach((term) => { const [type, period] = term.split(" "); dict[type] = Number(period) * 28;
});
// 개인 정보별 유효기간 파기 여부 계산
let result = []; for (let i = 0; i < privacies.length; i++) { const [date, termType] = privacies[i].split(" "); const [year, month, day] = date.split("."); const START = Number(year) 12 28 + Number(month) * 28 + Number(day); if (CURR - START >= dict[termType]) { result.push(i + 1); } }
return result; }
⭐ 성찰
❓ 문제 상황
개인정보 수집 유효기간
👨💻 문제 해결
✅ 1차 풀이: 최소 단위로 변환해 차이 계산 후, 단위 재계산
function solution(today, terms, privacies) { // 오늘 날짜 계산 const [yy, mm, dd] = today.split("."); const CURR = Number(yy) 12 28 + Number(mm) * 28 + Number(dd);
});
let result = []; for (let i = 0; i < privacies.length; i++) { const [date, termType] = privacies[i].split(" "); const [year, month, day] = date.split("."); const START = Number(year) 12 28 + Number(month) * 28 + Number(day); if (CURR - START >= dict[termType]) { result.push(i + 1); } }
return result; }