알고리즘_2016년

정재연·2022년 1월 17일
0

알고리즘

목록 보기
3/23
post-thumbnail

2016년 날짜 요일 알아 내기!

1. 문제 설명

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"를 반환하세요.

2. 제한 조건

2016년은 윤년입니다.
2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다)

3. 입출력 예

ab
524

4. 나의 문제 풀이

Date를 전에 들어 본적이 있어서 Date함수를 사용하기로 했다.

1. Date() 사용하기
2. 입력되는 a,b의 요일 찾아내기
  • 예시) date
    date()를 사용 할 때는 앞에 new를 사용하여 새로운객체로 만들어 준다음사용한다.

let totalDate = new Date()

let year = totalDate.getFullYear()
let month = totalDate.getMonth()+1
let date = totalDate.getDate()
let day = totalDate.getDay();
console.log(totalDate)
console.log(year,month, date,day )

특정 날짜의 정보를 얻고 싶다면,괄호 안에 날짜를 입력해 주면 된다.👌🏻


let totalDate = new Date('2016-2-14')

getDay()요일은 숫자로 반환해 줘서 새로운 배열의 인덱스로 사용하기로 했다.
0~6으로 요일을 나타내주어, 일~토로 나타냈다.
새로운 배열을 만들어, 그 안에 요일 입력해 준다음 해당 요일의 인덱스 값으로 요일을 찾아오도록 했다.

// 2022-1-17이 월요일 이니까 day는 1로 나온다.
let day = new Date(`2022-1-17`).getDay()
let dayLabel = new Array('SUN','MON','TUE','WED','THU','FRI','SAT');

// 이 숫자를 이용해 dayLabel의 인덱스로 사용하면 'MON'이 나온다.
console.log(dayLabel[day]);	// 'MON'
  • 나의 답안
function solution(a,b) {
    let answer = '';

    let day = new Date(`2016-${a}-${b}`).getDay()
    let dayLabel = new Array('SUN','MON','TUE','WED','THU','FRI','SAT');

    console.log(dayLabel[day])
    return answer=dayLabel[day]

}

solution(1,17)

5. 다른 사람의 풀이

function getDayName(a,b){
  var date = new Date(2016, (a - 1), b);
    return date.toString().slice(0, 3).toUpperCase();
}
let date = new Date(`2020-01-10`);
console.log(date.toString())	//Fri Jan 10 2020 00:00:00 GMT+0000 (Coordinated Universal Time)

date에 toString()을 사용하면 알아서 요일과 달을 문자로 바뀌어서 알려준다.오호~
slice를 통해 요일만 잘라낸 다음 대문자로 변경해서 리턴하는 것으로 문제를 해결 하셨다.

profile
코린이 개발자 :)

0개의 댓글