2016


質問する


問題の説明
2016年1月1日は金曜日です.2016年a月b日は何曜日ですか?2つの数a,bを入力し,2016年a月b日が曜日である関数を返し,解を完成する.日曜日の名称は日曜日から土曜日までSUN、MON、TUE、WED、THU、FRI、SAT
.たとえば、a=5、b=24の場合は、5月24日が火曜日であるため、文字列「TUE」を返します.
せいげんじょうけん
2016年は閏年です.
2016年a月b日は実在の日です(13月26日または2月45日などの日付は提供されません)
I/O例
a b result
5 24 "TUE"

コード#コード#

class Solution {
    public String solution(int a, int b) {        
        
        // 1. 나눈 나머지에 따른 요일 저장 배열.
        String days[] = {"FRI","SAT","SUN","MON","TUE","WED","THU"};
        // 2. 매 달의 일 수, 윤달이므로 2월은 29일까지 존재.
        int month[] = {0,31,29,31,30,31,30,31,31,30,31,30,31};
       
        // 3. 총 일수의 합
        int sum = 0;
        
        // 4. a 이전 달 까지의 일수를 모두 더해준다.
        for(int i =1;i<a;i++){
            sum+=month[i];
        }
        // 5. a달의 b일을 더해준다.
        sum+=b;
        
        // 6. 7의 배수인 경우, 모두 목요일이다.
        if(sum % 7 == 0) return days[6];
        // 7. 나머지는 인덱스에 따라 요일 출력, 0번 인덱스부터 시작하므로 -1을 해준다.
        return days[(sum % 7)-1];
    }
}