[프로그래머스]2016년

jableee·2022년 1월 17일
0

알고리즘

목록 보기
1/6

문제 설명
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"

function solution(a, b) {
    var answer = '';
    var days = ['SUN','MON','TUE','WED','THU','FRI','SAT']
    var month = [31,29,31,30,31,30,31,31,30,31,30,31]
    
    var sum = 0;
    for(let i=0; i<a-1; i++){
        sum += month[i]
    }
    sum = sum + b +4;
    
    answer = days[sum%7]
    return answer;
}

풀이

요일을 days배열에 선언
각 월별 일수를 month배열에 선언
a의 값은 현재 받아온 월의 정보이다.
예를 들어 5월이라하면 5월 이전까지 일수를 더해야하므로 a-1까지 반복해서 더해준다.
그리고 b 의 값(현재 날짜) 를 더해주고
1월1일이 금요일이므로 날짜를 합친값에 4를 더해준다
그리고 출력값에 요일의 길이인 7의 나머지 값을 반환하도록하면 입력받는 월,일에 해당하는 요일이 반환된다

profile
개발 공부

0개의 댓글