ss 프로그래머스 1단계 : 2016년
본문 바로가기
알고리즘

프로그래머스 1단계 : 2016년

by 꿈나무개발 2022. 11. 29.
728x90

프로그래머스 1단계 : 2016년

📝 문제 설명

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"

✌️ 나의 풀이

new Date()를 통해 2016년 a월 b일을 불러옵니다. 달을 0부터 센다고 해서 1을 뺐습니다. 결과가 숫자로 나오기 때문에 toString()을 해서 보면 "Tue May 24 2016 00:00:00 GMT+0900 (Korean Standard Time)"이렇게 요일부터 나옵니다. slice()로 요일 부분만 자르고 toUpperCase()로 대문자를 만들면 끝~!
function solution(a, b) {
    let answer = new Date(2016, a-1, b);
    return answer.toString().slice(0, 3).toUpperCase();
}

👍 다른 풀이

배열 2개워 조건문을 사용해서 풀이한 방법입니다.
function getDayName(a,b){
    var dayList = ['FRI','SAT','SUN','MON','TUE','WED','THU'];
    var monthArr = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
    var daySum;
    if(a < 2) {
    daySum = b - 1;
    } else {
    daySum = monthArr.slice(0, a - 1).reduce((a, b) => a + b) + b - 1;
    }
    return dayList[daySum % 7];
}
728x90
반응형

댓글


HTML
CSS
JAVASCRIPT

JAVASCRIPT

자세히보기
광고 준비중입니다.