본문 바로가기
자료구조&알고리즘/코딩테스트 문제연습

프로그래머스 Lv1. 2016년 (JavaScript)

by 복숭아 우유씨 2022. 9. 3.

자바스크립트로 프로그래머스 문제 풀기

문제

입력받은 날의 요일을 특정한 문자열로 반환하는 문제이다.

- 출처: https://school.programmers.co.kr/learn/courses/30/lessons/12901

풀이

나의 풀이

 

Date객체를 생성해서 getDay()를 통해 요일값을 얻은 후 switch문을 사용해서 매우 긴 코드를 작성하였다. 

function solution(a, b) {
  var answer = new Date(2016, a - 1, b); // Date객체 생성
  answer = answer.getDay(); // 요일 정보 얻기
  switch (answer) {
    case 0:
      answer = "SUN";
      break;
    case 1:
      answer = "MON";
      break;
    case 2:
      answer = "TUE";
      break;
    case 3:
      answer = "WED";
      break;
    case 4:
      answer = "THU";
      break;
    case 5:
      answer = "FRI";
      break;
    case 6:
      answer = "SAT";
      break;
  }

  return answer; 
}

 

다른 사람들 풀이

Date.toString()을 통해서 바로 요일을 구하였다. 

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

 

 

Study more...

1. Date 객체

  • Date 객체는 1970년 1월 1일 UTC(협정 세계시) 자정과의 시간 차이를 밀리초로 나타내는 정수 값
  • Date 생성자간 차이
    • new Date() : Date 객체를 반환한다.
      • 이때 월은 0~11까지의 정수인 점을 주의하여야 한다. (9 = 8월)
    • Date() : 함수이다. 현재 날짜/시간 정보를 문자열로 반환한다.
  • 현재 문제에서 사용한 메서드
    • Date.prototype.getDay() : Date객체의 요일 정보를 0~6의 숫자로 반환한다 (0 = 일요일)
    • Date.prototype.toString() : Date객체의 정보를 요일부터 시작하는 문자열로 반환한다.

new Date()와 Date()의 차이

 

댓글