두 개의 숫자 m과 d가 있다고 가정합니다. 요일이 열로 표시되고 행이 현재 요일로 표시되는 달력을 고려하십시오. 달력의 열에 몇 개의 열이 m 달과 d 달의 첫 번째 날짜의 요일을 제공해야 하는지 알고 싶습니다(연도가 윤년이 아니라고 가정).
따라서 입력이 m =11과 같으면; d =6이면 11월 1일이 토요일이고 5개의 열이면 충분하기 때문에 출력은 5가 됩니다.
단계
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
Define an array a of size: 13 := { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } return (a[m] + d + 5) / 7
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
#include <bits/stdc++.h> using namespace std; int solve(int m, int d){ int a[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; return (a[m] + d + 5) / 7; } int main(){ int m = 11; int d = 6; cout << solve(m, d) << endl; }
입력
11, 6
출력
5