Algorithm - 2016년

문제 설명

2016 년 1 월 1 일은 금요일입니다. 2016 년 a 월 b 일은 무슨 요일일까요?
두 수 a ,b 를 입력받아 2016 년 a 월 b 일이 무슨 요일인지 리턴하는 함수, solution 을 완성하세요.
요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT입니다.
예를 들어 a=5, b=24 라면 5 월 24 일은 화요일이므로 문자열 “TUE” 를 반환하세요.

제한 조건
  • 2016 년은 윤년입니다.
  • 2016 년 a 월 b 일은 실제로 있는 날입니다. (13 월 26 일이나 2 월 45 일같은 날짜는 주어지지 않습니다)

나의 풀이

new 생성자를 사용하여 Date 객체를 생성합니다.
문제에서 a=month, b=day을 나타내므로 a 와 b 를 Date 객체의 인자로서 전달합니다.

Date() 객체에서 월은 0 부터 시작합니다. 예를 들어 Date(2018,0,1)2018년 1월 1일을 가리키게 됩니다. 따라서 실제 입력 값인 a=4 를 입력해야 5 월에 대한 정보를 추출할 수 있게 됩니다.

요일의 문자열 값이 들어간 days 배열에 getDay()로 가져온 인덱스를 삽입하여 문자열 “TUE” 을 반환합니다.

getDay() 함수는 해당 날짜의 요일 값을 배열 인덱스로 가져옵니다.

function solution(a, b) {
    var d = new Date(2016,a-1,b);
    var days  = ["SUN","MON","TUE","WED","THU","FRI","SAT"];
    var answer = days[d.getDay()];
    return answer;
}

Comments