CS/알고리즘

[Javascript] 2016년

Dahoon06 2022. 2. 26. 15:02
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