자바스크립트로 프로그래머스 문제 풀기
문제
입력받은 날의 요일을 특정한 문자열로 반환하는 문제이다.
- 출처: 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() : 함수이다. 현재 날짜/시간 정보를 문자열로 반환한다.
- new Date() : Date 객체를 반환한다.
- 현재 문제에서 사용한 메서드
- Date.prototype.getDay() : Date객체의 요일 정보를 0~6의 숫자로 반환한다 (0 = 일요일)
- Date.prototype.toString() : Date객체의 정보를 요일부터 시작하는 문자열로 반환한다.
'자료구조&알고리즘 > 코딩테스트 문제연습' 카테고리의 다른 글
프로그래머스 Lv.1 최대공약수와 최소공배수 (JavaScript) (0) | 2022.09.17 |
---|---|
프로그래머스 Lv.1 로또의 최고 순위와 최저 순위 (JavaScript) (2) | 2022.09.10 |
프로그래머스 Lv.1 약수의 합 (JavaScript) (0) | 2022.09.10 |
프로그래머스 Lv.1 문자열 내림차순으로 배치하기 (JavaScript) (0) | 2022.09.10 |
프로그래머스 Lv.1 같은 숫자는 싫어 (JavaScript) (0) | 2022.08.27 |
댓글