[프로그래머스] 2016년 - JavaScript

Hyunji·2022년 1월 17일
0

알고리즘

목록 보기
11/51
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일같은 날짜는 주어지지 않습니다)

입출력 예시

abresult
524"TUE"

문제풀이

function solution(a, b) {
    let day = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'];
    let date = new Date(`2016-${a}-${b}`);
    return day[date.getDay()];
//    console.log(day[date.getDay()]); 
}
풀이방법

문제를 풀기 위해 찾아보니 javascript 에 Date 를 이용하면 손쉽게 객체를 만들 수 있었다

  • 먼저 day 라는 변수 안에 'SUN' ~ 'SAT' 을 배열로 넣어준다
  • Date 를 이용하고 백틱을 이용해 변수를 삽입해준다 (백틱을 이용했기 때문에 ${a} ${b} 로 a 안에는 월, b안에는 일 을 변수로 받을 수 있게 되었다)
  • .getDay 를 이용해 요일을 return 해준다
  • 주어진 날짜의 요일에 해당하는 0 이상 6 이하의 정수. (일요일은 0, 월요일은 1, 화요일은 2, ...) 이렇게 해당하기 때문에 day 안에 배열로 요일을 넣어주었다.
사용한 메소드

Date

  • 기본적으로 Date는 생성자 함수를 통해 사용하고, 활용하는 방법으로는 크게 4가지가 있다.
  1. 기본 생성자 함수로 날짜 만들기
  2. 인자로 날짜 만들기
  3. UTC를 사용한 날짜 만들기
  4. 문자 값으로 날짜 만들기

.getDay()

  • 주어진 날짜의 현지 시간 기준 요일을 반환한다.
  • 주어진 날짜의 요일에 해당하는 0 이상 6 이하의 정수를 반환한다. (0 은 일요일, 1은 월요일 ... ~)

출처: https://7942yongdae.tistory.com/37
출처: https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Date/getDay


다른 사람의 풀이
function getDayName(a,b){
  var date = new Date(2016, (a - 1), b);
    return date.toString().slice(0, 3).toUpperCase();
}

똑같이 Date 를 사용하였는데 0이 1월부터 시작하기 때문에 월에 해당하는 a 에 -1을 해준 것으로 보인다.
그리고 return 값에서 .toString()을 이용해 문자열로 변환한 뒤, 3번째 까지 배열을 자르고 대문자로 변환해주는 방법을 사용한 것 같다.

profile
성장중인 개발자

0개의 댓글