프로그래머스 2016년 자바스크립트

2022. 1. 20. 02:29코딩공부/JavaScript 알고리즘

 

 

수도 코딩

1월1일부터 지나간 날짜 구하는 법 :

달마다 날짜수로 배열을 만든다

n월이면 index 0부터 n-1까지 더해준다

 

요일 구하는 법 : 

요일 배열을 만든다. [FRI , SAT, SUN, MON, TUE, WED, THU]

(1월1일부터 지나간 날짜 % 7 - 1)이 인덱스가됨.

(1월1일부터 지나간 날짜 % 7 - 1)이 -1일 경우에 인덱스 6을 리턴함.

 

 

나의 풀이

function solution(a, b) {
    var answer = '';
    let days = ["FRI" , "SAT", "SUN", "MON", "TUE", "WED", "THU"];
    let dates = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
    
    let sum = 0;
    if(a != 1) {
      for (let i = 0; i < a-1; i++) {
        sum += dates[i];
      }
    }

    let days_idx = (sum + b) % 7 -1;
    if(days_idx == -1) {
      // sum이 7의 배수면 index가 -1이 되어 undefined 객체가 들어가게되기에 따로 할당해줬다.
      answer = days[6];
    } else {
      answer = days[days_idx];
    }

    return answer;
}

console.log(solution(1,7))