제 코드는 최선의 방안은 아닙니다.
단순히 기록용, 공유용이니 이 점 보실 때, 참고바랍니다!
- 윤년 계산법을 이용해 답을 구해내자.
1) 윤년은 그 해의 수가 4의배수이고 100의배수이지만 400의배수는 아니여야한다.
2) 윤년은 366일이고 평년은 365일이다.- 1~2015년까지의 일을 더하고, 2016년은 만약 a가 5월이라면 4월까지의 일 수를 더하고 5월의 일 수인 b를 더한다.
- 더한 값을 7로 나눠 나머지 값으로 요일을 구한다.
function solution(a, b) {
var tmp = 0;
var month = [31,29,31,30,31,30,31,31,30,31,30,31];
var day = ["THU","FRI","SAT","SUN","MON","TUE","WED"];
for(var i = 1; i < 2016; i++){
if((i%4) == 0 && (i%100) == 0 && (i%400) != 0){
tmp += 366;
}else
tmp += 365;
}
for(var i = 0; i < a-1; i++){
tmp += month[i];
}
tmp += b;
return day[tmp%7];
}
- Date를 이용해 쉽게 구할 수도 있었지만, 직접 계산하면서 구하다보니 실행시간이 조금 더 걸려 아쉬움이 남는다.
- 그래도 이참에 윤년 계산법을 복습할 수 있어 좋았다.
어제부터 봐왔는데 열심히 하시는 모습 보기 좋아요 많이 배우고갑니다