[프로그래머스]Level.1 2016년

전현정·2021년 11월 21일
0

알고리즘

목록 보기
2/18
post-thumbnail

https://programmers.co.kr/learn/courses/30/lessons/12901

문제 설명

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일같은 날짜는 주어지지 않습니다)

입출력 예

문제풀이

문제풀이1

Date 생성자 함수를 이용해 특정 날짜에 대한 정보를 갖고 온다

function solution(a,b){
	var answer ='';
  	const date = new Date(`2016,${a},${b}`);
  	let day = (date+"").split(' ');
  answer = day[0].toUpperCase();
  return answer;
}

문제풀이2

getDay()메서드를 이용해 요일을 나타내는 정수를 0(일요일)부터 6(토요일)까지 반환한다.

function solution(a,b){
	var answer ='';
  	let day = ["SUN","MON","TUE","WED","THU","FRI","SAT"]
  	let day = (date+"").split(' ');
  	answer = (day[date.getDay()])
  return answer;
}

문제풀이3

  1. Day()생성자 함수에 날짜를 나타내는 문자열을 인수로 전달하여 지정된 날짜와 시간을 나타내는 Day()객체를 반환한다.
  2. 생성된 객체에 getDay()메서드를 이용해 정수를 0 - 6까지 반환한다.
  3. 반환값을 week 인덱스로 활용해 요일을 구한다.
function solution(a,b){
	const week = ['SUN','MON','TUE','WED','THU','FRI','SAT']
    const date = new Date(`2016-${a}-${b}`);
  	return week[date.getDay()];
}

문제풀이4

요일은 항상 앞의 세글자라는 점을 이용해 요일이 들어있는 배열을 만들지 않고
간단하게 풀 수 있는 방법

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


Date

Date객체는 한 점을 플랫폼에 종속되지 않는 형태로 나타냅니다.
함수로 호출할 경우 new Date().toString()과 동일하게 현재 날짜와 시간을 나타내는 문자열을 반환합니다.

💡new Date()

생성자로 호출할 경우 새로운 Date 객체를 반환합니다.

getDay()setHours()처럼 구성 요소를 현지 시간 기준으로 읽고 쓰는 메서드에는 getUTCDay()setUTCHours()처럼 UTC를 기준으로 하는 읽기/쓰기 메서드도 존재합니다.

💡getDay()
주어진 날짜의 현지 시간 기준 일을 반환합니다.
const birthday = new Date('August 19, 1975 23:15:30');
const date1 = birthday.getDate();

console.log(date1);
// expected output: 19
profile
꾸준하기 위해 기록하는 개발자의 개발 일기

0개의 댓글

관련 채용 정보