티스토리 뷰

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

* 사용언어 : java, 자바

 

1. 문제

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

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

 

2. 풀이

배열을 활용하여 미리 월 별 일수를 선언해둡니다.

그리고 1월부터 x - 1 월까지 모든 월의 일수를 더하고 입력받은 y 더해 총 일수를 구합니다.

1월 1일이 월요일이므로 총 일수를 7로 나눈 나머지로 요일을 출력해줍니다.

 

3. 코드

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int month = sc.nextInt();
		int day = sc.nextInt();
		sc.close();

		int[] daysInMonth = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
		String[] dayOfTheWeeks = {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"};

		int totalDays = day;
		for (int i = 0; i < month - 1; ++i) {
			totalDays += daysInMonth[i];
		}
		System.out.println(dayOfTheWeeks[totalDays % 7]);
	}
}
728x90
반응형
댓글