[백준/C++] 1924 - 2007년

orangesnail·2025년 4월 7일

백준

목록 보기
96/169

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;
}
profile
초보입니다. 피드백 환영합니다 😗

0개의 댓글