반응형
[풀이]
function solution(a, b) {
const days = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"];
const date = new Date();
date.setFullYear(2016, a - 1, b);
const result = days[date.getDay()];
return result;
}
1. 먼저 days 변수를 만들고 요일을 배열 안에 넣어준다.
2. new Date()를 이용해 2016년 a월 b일을 설정해준다.
3. 이때 자바스크립트에서 월은 (현재 월 -1)을 해줘야한다. (예시 : 2월은 자바스크립트에서 1임)
4. 마지막으로 배열에서 그 날의 요일을 받아온다.
[코드 리뷰]
function solution(a, b) {
const days = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"];
const date = new Date(2016, a - 1, b);
return days[date.getDay()];
}
메서드 체이닝과 setFullYear을 호출하기 보다 new Date를 통해 인스턴스를 생성할 때 인자로 넘겨 설정해 코드를 줄였다.
훨씬 보기 깔끔하다. result 변수를 만들기보다 그냥 return 해버리면 된다.
[추가 풀이]
1. swith 사용
function solution(a, b) {
const resultDay = new Date(2016, a - 1, b);
switch (resultDay.getDay()) {
case 0:
return "SUN";
case 1:
return "MON";
case 2:
return "TUE";
case 3:
return "WED";
case 4:
return "THU";
case 5:
return "FRI";
case 6:
return "SAT";
}
}
2. toString과 slice
function solution(a, b) {
const dayStr = new Date(2016, a - 1, b).toString();
return dayStr.slice(0, 3).toUpperCase();
}
toString 으로 바꾸면,
'Tue May 24 2016 00:00:00 GMT+0900 (Korean Standard Time)'
이렇게 나오는데 이것을 slice(0, 3)해주면 "Tue"만 잘리게 된다!
'코딩 테스트 > Programmers - 1' 카테고리의 다른 글
[JS] 약수의 합 (1) | 2022.09.25 |
---|---|
[JS] 자릿수 더하기 (0) | 2022.09.24 |
[JS] 짝수와 홀수 (0) | 2022.09.24 |
[JS] 문자열 다루기 기본 (0) | 2022.09.24 |
[JS] 음양 더하기 (1) | 2022.09.23 |