N

(SWEA c++)5515. 2016년 요일 맞추기 본문

SW Expert Academy

(SWEA c++)5515. 2016년 요일 맞추기

naeunchan 2020. 11. 16. 09:40
728x90
반응형

swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWWOwecaFrIDFAV4&categoryId=AWWOwecaFrIDFAV4&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

윤년의 요일을 맞추는 문제.

month배열에 1월 ~ 12월 까지의 일자 수를 저장한다.

0: 월, 1: 화 ... 이런식으로 되어 있으니 기억하도록 하자.

 

그리고 입력받은 월 - 1 까지의 일자를 다 더하고,

마지막에는 입력받은 일자를 더하면 된다.

 

또한 1월 1일은 금요일이라고 나와있다.

이 뜻은 일자를 7로 나눴을 때 나머지가 4라는 뜻이다.(0: 월, 1: 화...)

그렇기 때문에 now += 3을 더하여 금요일이 1일이라는 것을 하고난 후,

now % 7을 하면 결과를 볼 수 있다.

#include <iostream>

using namespace std;

int month[13] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

int main(void)
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    
    int t;
    cin >> t;
    
    for(int tc = 1; tc <= t; tc++)
    {
        int m, d, now = 0;
        cin >> m >> d;
        
        for(int i = 1; i < m; i++)
            now += month[i];
        now += d;
        now += 3;
        
        cout << "#" << tc << " " << now % 7 << endl;
    }
    return 0;
}
728x90
반응형