[프로그래머스] 2016년(javascript)

프린이·2020년 11월 25일
2

📙 내가 생각한 풀이 과정

  • 윤년 계산법을 이용해 답을 구해내자.
    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를 이용해 쉽게 구할 수도 있었지만, 직접 계산하면서 구하다보니 실행시간이 조금 더 걸려 아쉬움이 남는다.
  • 그래도 이참에 윤년 계산법을 복습할 수 있어 좋았다.
profile
주니어 프론트엔드개발자

1개의 댓글

comment-user-thumbnail
2020년 11월 25일

어제부터 봐왔는데 열심히 하시는 모습 보기 좋아요 많이 배우고갑니다

답글 달기