알고리즘

프로그래머스 Level 1 - 2016년 (Javascript)

또롱또 2022. 5. 14. 11:18
728x90

https://programmers.co.kr/learn/courses/30/lessons/12901#

function solution(a, b) {
    var answer = '';
    // 총 일수를 합칠 변수
    let sum = 0;
    // 1월부터 12월까지, index[0]은 1월의 총 날자를 구할때 필요하다.
    let months = [0,31,29,31,30,31,30,31,31,30,31,30,31];
    // 2016이 금요일 시작이니까 금요일부터
    let days = ["FRI", "SAT", "SUN", "MON","TUE", "WED", "THU", ];
    
    // for 문을 돌면서 총 일수를 더해준다.
    for(let i=0; i<a; ++i){
        sum += months[i];
    }
    
    // 1월1일 하루를 빼준다
    sum = sum + b - 1
    
    // 전체 일수를 7로 나누가 나온 나머지가 이제 요일 각 인덱스에 접근할것이다.
    sum %= 7
    answer = days[sum]
    
    // 정답
    return answer;
}

정답코드중에서는 Date 객체를 사용한 답을 가져왔다.

Date 가 있다는걸 완전히 잊고 있었다.

해석하자면, Date객체는 일요일부터시작해서 그냥 일요일부터 요일배열을 만들어주고

Date 객체생성 후 getDay()로 접근한다. 

function getDayName(a,b){
    var arr = ['SUN','MON','TUE','WED','THU','FRI','SAT'];
    var date = new Date(`2016-${a}-${b}`);
  var day = date.getDay()
    return arr[day];
}
728x90