티스토리 뷰

728x90
반응형

백준 온라인 저지(BOJ) 1924번 2007년

https://www.acmicpc.net/problem/1924

 

1924번: 2007년

첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다.

www.acmicpc.net

* 사용언어 : C언어, C++

 

1. 문제

2007년 x월 y일은 어떤 요일인지 출력

(월요일 MON, 화요일 TUE, ... 일요일 SUN)

 

2. 풀이

배열을 활용하여 월 별 일수와 요일을 선언해둡니다.

그리고 1월부터 x - 1 월까지 모든 월의 일수를 y에 더하여 총 일수를 구합니다.

1월 1일이 월요일이므로 총 일수를 7로 나눈 나머지가 요일이 됩니다.

마찬가지로 선언해둔 char* 배열을 사용하여 출력해줍니다.

 

3. 코드

#include <stdio.h>

int daysOfMonth[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
char *dayOfWeek[7] { "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT" };

int main() {
	int month, day;
	scanf("%d %d", &month, &day);
	for (int i = 1; i < month; ++i) {
		day += daysOfMonth[i];
	}
	printf("%s\n", dayOfWeek[day % 7]);
	return 0;
}
728x90
반응형
댓글