안녕하세요
프로그래머스 JavaScript [2016년] 본문
- 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일같은 날짜는 주어지지 않습니다)
입출력 예
abresult5 | 24 | "TUE" |
const month = {
1: 31,
2: 29,
3: 31,
4: 30,
5: 31,
6: 30,
7: 31,
8: 31,
9: 30,
10: 31,
11: 30,
};
const days = {
1: "FRI",
2: "SAT",
3: "SUN",
4: "MON",
5: "TUE",
6: "WED",
0: "THU",
};
function solution(a, b) {
let count = b;
for (i = 2; i <= a; i++) {
count += month[i - 1];
}
return days[count % 7];
}
12월 31일이 366 되도록 합니다.
366%7로 나머지의 값에 따라 요일을 반환하도록 합니다.
1월 1일은 금요일이므로 1%7 == 1 이 되기 때문에 1을 "FRI"로 기준을 잡았습니다.
let count = b; : 1월 1일이라면 1을 반환하도록 count 시작 숫자를 b로 합니다.
for (i = 2; i <= a; i++) {
count += month[i - 1];
} //1월은 b만으로 count하면 되기 때문에 2월부터 month[i-1]의 값을 더하도록 합니다.
return days[count % 7]; : 더해진 값들을 7로 나누어 해당하는 요일을 반환합니다.
'프로그래머스 > Lv.1' 카테고리의 다른 글
프로그래머스 JavaScript [소수 찾기] 소수판별 (0) | 2022.09.30 |
---|---|
프로그래머스 JavaScript [폰켓몬] [...new Set(arr)] (0) | 2022.09.30 |
프로그래머스 JavaScript [두 개 뽑아서 더하기]★ new Set() 중복이 없는 객체 (0) | 2022.09.29 |
프로그래머스 JavaScript [숫자 문자열과 영단어]★★ new RegExp(var, gi) 정규표현식 변수 (0) | 2022.09.29 |
프로그래머스 JavaScript [K번째 수] slice() (0) | 2022.09.29 |