[Programmers] 2016년 - JS

지냐킴·2022년 7월 18일
0

코딩테스트

목록 보기
4/28
post-thumbnail

✅문제 설명

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"
  • 기본 코드
function solution(a, b) {
    var answer = '';
    return answer;
}

✅ 내 문제풀이

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

Date.toString() Date 객체의 시간을 문자열로 반환합니다.
자세한 설명
'Tue August 19, 1975 23:15:30' 와 같이 표기된다.

  • Month는 0에서 11사이의 정수이므로, 0은 1월, 1은 2월로 표기되이게 a-1을 해주어야한다.
  • 앞에 세글자(Tue)을 가져오기 위해.slice(0,3)메소드를 사용했고
  • 대문자로 바꾸기 위해 .toUpperCase() 메소드를 사용했다.

✅ 다른 풀이 방법

다른 풀이 방법
1) for 문 사용하기

function solution(a, b) {
    var answer = '';
    var dayOfWeek = ["THU","FRI","SAT","SUN","MON","TUE","WED"];
    var sumDay =[31,29,31,30,31,30,31,31,30,31,30,31];
    var sum = 0;
    for(var i =0;i<a-1;i++){
        sum += sumDay[i];
    }
    sum += b;
    var ans = (sum % 7);
    answer = dayOfWeek[ans];
    return answer;
}

https://wooder2050.medium.com/알고리즘-2016년-javascript-cfd2268af43a

profile
코린이일기

0개의 댓글

관련 채용 정보