2016년

2016년
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// https://programmers.co.kr/learn/courses/30/lessons/12901
// 1월:31일
// 2월:29일
// 3월:31일
// 4월:30일
// 5월:31일
// 6월:30일
// 7월:31일
// 8월:31일
// 9월:30일
// 10월:31일
// 11월:30일
// 12월:31일
function solution(a, b) {
const days = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
const dow = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'];
let eachFirstDow = [5];
let tmp;
// setup process
for (let i = 1; i < a; i++) {
tmp = days[i - 1] % 7;
console.log(i + 1, dow[(eachFirstDow[i - 1] + tmp) % 7]);
eachFirstDow[i] = (eachFirstDow[i - 1] + tmp) % 7;
}
eachFirstDow.forEach((item) => {
console.log(dow[item]);
});
tmp = (b - 1) % 7;
return dow[(eachFirstDow[a - 1] + tmp) % 7];
}
result = solution(10, 1);
result = solution(5, 24);

해설

  • 2016년은 윤년이다
  • a월 b일을 입력받았을때 무슨요일인지 반환하는 문제이다
  • 나는 dow에 요일을 넣었다
  • 1월 1일은 무슨 요일인지 확인한다
  • 확인 결과 금요일이다
  • 첫번째 반복문에서 각 월 1일의 요일을 구한다
  • a월 1일의 요일에서 (b-1)일을 더하고 7로 나누면 해당일의 요일을 구할 수 있다
Author

chinsung

Posted on

2020-09-18

Updated on

2021-08-04

Licensed under

댓글