https://www.acmicpc.net/problem/1924
특정 날짜의 요일을 구하기 위해서는, 7로 나누었을 때의 나머지를 이용해야 한다. 즉, 1월 1일부터 그 날짜까지의 일수의 총합을 구한 뒤, 그것을 7로 나누면 된다.
이를 위해서 각 월별 일수를 리스트에 넣은 다음, for문을 이용해 해당 월 이전까지의 일수를 더해준다. 그 다음 해당 월의 며칠인지를 더해준다.
출력할 때는 앞서 말했듯이 총 일수를 7로 나눈 나머지를 인덱스로 삼아 요일 리스트에서 출력한다.
#include <iostream>
using namespace std;
int main() {
int x, y;
cin >> x >> y;
int days[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
string weekdays[7] = {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"};
int total = 0;
for (int i = 0; i < x - 1; i++) {
total += days[i];
}
total += y;
cout << weekdays[total % 7] << endl;
}