날짜를 계산하되, 윤년에 대한 예외 처리 추가
문제를 성실히 구현하면 된다...
#include <iostream>
constexpr int MAX_DATE[12] = {
31, 28, 31, 30,
31, 30, 31, 31,
30, 31, 30, 31};
void printDate(const int y, const int m){
int y_new = 0;
int m_new = 0;
int d_new = 0;
if (m==1){
y_new = y-1;
m_new = 12;
d_new = 31;
}
else if (m==3){
y_new = y;
m_new = 2;
//check 28 or 29
if (((y%4 == 0) && (y%100 != 0)) || (y%400 == 0)){
d_new = 29;
}
else{
d_new = 28;
}
}
else{
y_new = y;
m_new = m-1;
d_new = MAX_DATE[m_new-1];
}
printf("%d %d %d\n", y_new, m_new, d_new);
return;
}
int main(){
int T = 0;
std::cin >> T;
for (int i=0; i<T; ++i){
int y = 0;
int m = 0;
std::cin >> y >> m;
printDate(y, m);
}
}