본문 바로가기
Developer/Algorithm

Programmers 프로그래머스 코딩테스트 연습 - 2016년 (JavaScript)

by roqkfrlfhr 2020. 8. 2.

Programmers 프로그래머스 코딩테스트 연습 - 2016년 (JavaScript)

 

Programmers(프로그래머스)의 코딩테스트 연습문제 Level 1 중,

2016년 문제를 JavaScript로 풀어보도록 하겠습니다.

 

 

문제 설명

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"

 

작성한 답

solution.js

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

 

설명

2016년 a월 b일의 요일을 구하는 문제입니다.

이 문제는 어렵게 생각할 필요 없이 JavaScript 에서 제공하는 Date 함수를 사용하여 실제 2016년 a월 b일의 요일을 return 해주면 됩니다.

아래 코드로 설명 드리도록 하겠습니다.

var answer = new Date(2016, 5-1, 24);	// 예제의 a=5, b=24 대입하여 실제 해당 날짜 구하기 (월에서 -1을 해줘야 원하는 월을 얻을 수 있습니다.)
console.log("answer => ", answer);	// answer =>  Tue May 24 2016 00:00:00 GMT+0900 (대한민국 표준시)

answer = answer.toString();		// slice 하기위해 string으로 변환
console.log("answer => ", answer);	// answer =>  Tue May 24 2016 00:00:00 GMT+0900 (대한민국 표준시)

answer = answer.slice(0, 3);		// 요일을 나타내고있는 문자열만 자르기
console.log("answer => ", answer);	// answer =>  Tue

answer = answer.toUpperCase();		// 대문자 변환
console.log("answer => ", answer);	// answer =>  TUE

 

 

 

 

도움이 되셨다면 공감, 댓글 부탁드립니다!

궁금하신 점이나 요청 사항은 언제든지 말씀 해주세요!

 

감사합니다.


댓글