문제

https://programmers.co.kr/learn/courses/30/lessons/12901

풀이

  • 2016년이 윤년임을 고려해서, 2월은 총 29일이다.
  • a월 b일까지의 총 일수를 7로 나누면 요일을 찾을 수 있다.
  • 1월1일이 금요일 이므로, 시작 요일을 금요일로 맞추기 위해 total_day = 3으로 한다.

코드


#include <string>
#include <vector>

using namespace std;


string solution(int a, int b) {

    string answer = "";
    int day_of_month[12] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
    string day_of_week[7] = { "MON", "TUE", "WED", "THU", "FRI", "SAT","SUN" };
    int total_date = 3;

    for(int i = 0; i < a-1; i++) {
        total_date += day_of_month[i];
    }
    total_date += (b);
    answer = day_of_week[(total_date) % 7];

    return answer;
}