728x90
반응형
문제 설명
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일같은 날짜는 주어지지 않습니다)
입출력 예 )
a | b | result |
5 | 24 | "TUE" |
정답코드
/**
*
* @param a: Month
* @param b: Day
* @returns {string} 요일 이름 리턴 : SUN, MON, TUE, WED, THU, FRI, SAT
*/
function solution(a, b) {
const year = '2016';
let month = '-'+a+'';
let day = '-'+b+'';
if(a < 10) month = '-0'+a+'';
if(b < 10) day = '-0'+b+'';
const yyyymmdd = year+month+day;
const week = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'];
return week[new Date(yyyymmdd).getDay()];
}
2016년으로 고정이니까 년도는 고정해주고
YYYY-MM-DD 형태로 만들기 위하여 a와 b에 ' - '를 합쳐주었다.
또한 10일미만 일경우 01 ~ 09 형태로 만들기위해 마찬가지로 '-0'로 붙여주어 계산하여 리턴하였는데....
다른 코드)
function solution2(a,b) {
const week = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'];
const date = new Date(`2016-${a}-${b}`);
const day = date.getDay();
return week[day];
}
그냥 백틱에 변수로써 사용하여 새로운 날짜를 만든후에 getDay()로 뽑아 값을 리턴해주면 끝....
728x90
반응형
'CS > 알고리즘' 카테고리의 다른 글
[Javascript] 두 개 뽑아서 더하기 (0) | 2022.02.26 |
---|---|
[Javascript] 예산 (0) | 2022.02.19 |
[Javascript] 3진법 뒤집기 (0) | 2022.02.01 |
[Javascript] 약수의 개수 덧셈 (0) | 2022.02.01 |
[Javascript] 실패율 (0) | 2022.01.17 |