[c++] 백준 1308

알감자·2022년 4월 27일
0

백준알고리즘

목록 보기
24/52

#1308

답도 제대로 나오는데 계속 틀렸다고 해서 분조장 걸릴 것 같다


#include <iostream>
using namespace std;

int month[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

bool isLeapYear(int year)
{
	if (year % 4 == 0)
		if (year % 100 != 0 || year % 400 == 0)
			return true;

	return false;
}

int dayCount(int y, int m, int d)
{
	int day = 0;

	//y년까지의 날짜를 다 더함 (2000년 12월 1일이면 2000 * 365 + 윤년인날은 +1)
	for (int i = 0; i < y; ++i)
	{
		day += 365;
		if (isLeapYear(i))
			day += 1;
	}

	for (int i = 0; i + 1 < m; ++i)
	{
		if (i == 1)
			day += isLeapYear(y);
		day += month[i];
	}

	day += d;

	return day;
}

int main()
{
	int year_1, month_1, day_1;
	int year_2, month_2, day_2;
	int result, count = 0;
	int day1, day2;

	cin >> year_1 >> month_1 >> day_1;
	cin >> year_2 >> month_2 >> day_2;

	day1 = dayCount(year_1, month_1, day_1);
	day2 = dayCount(year_2, month_2, day_2);

	if (year_2 - year_1 >= 1000 && 
   dayCount(0, month_1, day_1) <= dayCount(0, month_2, day_2))
	{
		cout << "gg";
		return 0;
	}

	cout << "D-" << day2 - day1 << "\n";

	return 0;
}

0개의 댓글