처음에는 조건을 주어 가며 하려고 했는데, 생각 해 보니 굳이 그러지 않아도 되었다.
어차피 더하려고 하는 것이니, 배열에 미리 값을 담아 넣고 반복하며 더해주었다.
굉장히 간단한 로직이다.
1월 1일이 월요일이므로 0으로 시작하기 편하게 해 주기 위해 일요일부터로 계산 해 주었다.
//
// Created by 전시은 on 2023/02/24.
//
// 문제 :: 2007년
// 링크 :: https://www.acmicpc.net/problem/1924
// 입력 :: 첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다.
// 출력 :: 첫째 줄에 x월 y일이 무슨 요일인지에 따라 SUN, MON, TUE, WED, THU, FRI, SAT중 하나를 출력한다.
#include <iostream>
#include <string>
using namespace std;
int main()
{
cin.tie(NULL);
ios_base::sync_with_stdio(false);
string day[7] = {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"};
int month[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int x, y, result = 0;
cin >> x >> y;
for(int i = 0; i < x-1; i++)
{
result += month[i];
}
cout << day[(result + y) % 7];
return 0;
}