2007 문제 풀기

2018, May 06    

백준에 있는 2007 문제를 풀어보았다. 문제링크

2007년 1월 1일 부터 주어진 월 일까지의 날짜 차이를 구하고 무슨 요일인지 출력하면 된다.

void twoThousandSeven(int x, int y)
{
	int beforeMon = x - 1;
	int dayFromOnetoBeforeMon = 0;
	
	for (int i = 1; i <= beforeMon; i++)
	{
		switch (i)
		{
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
			dayFromOnetoBeforeMon += 31;
			break;
		case 4:
		case 6:
		case 9:
		case 11:
			dayFromOnetoBeforeMon += 30;
			break;
		case 2:
			dayFromOnetoBeforeMon += 28;
			break;
		}
	}

	int dayFromOnetoX = dayFromOnetoBeforeMon + y - 1;
	int dateOfInt = dayFromOnetoX % 7;
	const char* dateOfString = nullptr;

	switch (dateOfInt)
	{
	case 0:
		dateOfString = "MON";
		break;
	case 1:
		dateOfString = "TUE";
		break;
	case 2:
		dateOfString = "WED";
		break;
	case 3:
		dateOfString = "THU";
		break;
	case 4:
		dateOfString = "FRI";
		break;
	case 5:
		dateOfString = "SAT";
		break;
	case 6:
		dateOfString = "SUN";
		break;
	}

	printf("%s", dateOfString);
}