Notice
Recent Posts
Recent Comments
«   2025/05   »
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
Tags
more
Today
Total
관리 메뉴

차차로그

[JS] 연습문제 > 2016년 본문

코딩테스트

[JS] 연습문제 > 2016년

차차한 2022. 8. 18. 10:55

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"를 반환하세요.

function solution(a, b) {
    
    var date = new Date('2016-01-01');
    
    date.setMonth(a-1);
    date.setDate(b);
    
    var answer = date.getDay();
    
    switch(answer){
        case 0: return 'SUN'; break;
        case 1: return 'MON'; break;
        case 2: return 'TUE'; break;
        case 3: return 'WED'; break;
        case 4: return 'THU'; break;
        case 5: return 'FRI'; break;
        case 6: return 'SAT'; break;
    }
}

내가 푼 문제

쉽게 Date객체를 받아서 푸는 것으로 생각했다

답은 잘 나왔는데 다른 사람 풀이를 보니 더 좋은 방법이 있는 걸 알았다

function solution(a, b) {
    
    return new Date(2016, (a-1), b).toString().substr(0,3).toUpperCase();
    
}

new Date객체를 만들 때 바로 a와 b를 넣어서 객체를 생성하고 그것을 toString으로 문자열로 만든다.

그러면 Tue May 24 2016 00:00:00 GMT+0900 (Korean Standard Time)가 되고 요일만 필요하기 때문에 substr로 요일부분을 잘라낸다.

리턴값은 대문자로 해야하기 때문에 toUpperCase로 대문자로 만든다!

 

Comments