알고리즘
프로그래머스 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