프로그래머스 2016

장현태입니다·2025년 10월 21일

LV. 1

첫번째로 생각해야 하는게 날짜 계산,
두번쨰는 1월1일이 금요일 이므로 시작하는 시간은 금요일
세번째는 날짜를 더해줄 변수
네번째 윤년의 경우 2월은 29일까지
다섯번째 7월에서 8월로 갈 경우 짝수번째가 31로 바뀜

처음에는 딕셔너리 형태로 만들어서 0부터 시작했다(상관없어 보임 이거도)
7월에서 8월로 갈 경우 + 2월 29일에서 변환점이 7월인데 여기서 if문이 길어질거 같아서 인덱스를 통해 (날짜 % 월)을 통해 해당 날짜의 더하게되는 요일을 구해줬다.

public string solution(int a, int b)
{
    if (a <= 0 || b <= 0 || a >= 13)
        return null;

    string answer = "";
    int[] maxDays = { 3, 1, 3, 2, 3, 2, 3, 3, 2, 3, 2, 3 };
    string[] dayDic = { "FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU" };

    int value = 0;

    for (int i = 0; i < a - 1; i++)
    {
        value += maxDays[i];
    }

    answer = dayDic[(value + b - 1) % 7];

    return answer;
}

0개의 댓글