호지

[프로그래머스] 개인정보 수집 유효기간 문제풀이 JS 본문

알고리즘/프로그래머스

[프로그래머스] 개인정보 수집 유효기간 문제풀이 JS

_hoji

우선 각 term에 대해 유효기간을 저장했다.

그리고 privacies를 탐색하여, 해당 날짜에서 today까지 걸린 일 수를 계산한다.

이 후 이것을 28일인 달로 계산해서 유효기간이 지난 index만 answer에 push한다.

function solution(today, terms, privacies) {
  let termList = {};
  let answer = [];

  for (const term of terms) {
    const [a, b] = term.split(" ");
    termList[a] = parseInt(b);
  }

  const [endYear, endMonth, endDay] = today.split(".").map(Number);
  const endDate = endYear * 12 * 28 + endMonth * 28 + endDay;

  for (let i = 1; i <= privacies.length; i++) {
    const [date, term] = privacies[i - 1].split(" ");
    const [startYear, startMonth, startDay] = date.split(".").map(Number);
    const startDate = startYear * 12 * 28 + startMonth * 28 + startDay;
    if (termList[term] <= (endDate - startDate) / 28) {
      answer.push(i);
    }
  }
  return answer;
}
Comments