728x90
https://school.programmers.co.kr/learn/courses/30/lessons/150370
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
function solution(today, terms, privacies) {
var answer = [];
const todayAsNumber = Number(today.replaceAll('.',''));
console.log(todayAsNumber);
const finishDates = [];
const termMap = new Map();
//map으로 보관기간 정리
for(let term of terms){
const [k,v] = term.split(' ');
termMap.set(k,Number(v));
}
for(let privacy of privacies){
const [startDate, concrName] = privacy.split(' ');
finishDates.push(getEndDate(startDate, termMap.get(concrName)));
}
finishDates.forEach((d,i)=>{
const endDateAsNumber = Number(d.replaceAll('.',''));
console.log(endDateAsNumber);
if(todayAsNumber - endDateAsNumber > 0){
answer.push(i+1);
}
})
return answer;
}
function getEndDate(startDate, term){
const [year,month,day] = startDate.split('.').map(d=>Number(d));
const result =[];
const addResult = month + term;
let y = Math.floor(addResult/12);
let m = addResult- y*12;
if(m === 0){
m = 12;
y -= 1;
}
if(day === 1){
result[2] = '28';
m -= 1;
}else {
result[2] = (day-1).toString().padStart(2,0);
}
result[0] = year+y;
result[1] = m.toString().padStart(2,0);
return result.join('.');
}
728x90
'STUDY > 알고리즘' 카테고리의 다른 글
[프로그래머스] 테이블 해시 함수 (javascript) (0) | 2023.09.10 |
---|---|
[프로그래머스] 당구 연습 (javascript) (1) | 2023.09.10 |
[프로그래머스] 무인도 여행 (javascript) (0) | 2023.09.08 |