오늘은 2007년 1월 1일 월요일이다. 그렇다면 2007년 x월 y일은 무슨 요일일까?
이를 알아내는 프로그램을 작성하시오.
입력: 첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다.
참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다.
출력: 첫째 줄에 x월 y일이 무슨 요일인지에 따라 SUN, MON, TUE, WED, THU, FRI, SAT중 하나를 출력한다.
예제 입력: 3 14 예제 출력: WED
2007년에 날짜를 입력하고 어떤 요일인지 출력하는 문제이다
1. 스캐너를 사용해 M(월) D(일) 값을 입력받는다
2. Month 값에 1월~12월까지 한달에 며칠이 있는지 선언한다
2. Day 배열에는 일요일부터 월요일까지 값을 넣는다
-> 일요일부터 시작해야 순서가 밀리지 않는다
3. for (0부터 입력받은 달까지 반복)
result에 1월부터 입력받은 달까지의 모든 날짜를 누적합 시킴
4.Day배열[result를 7로 나눈 나머지] 구함
-> 1월 1일부터 입력받은 달까지 누적으로 합을 구했기 때문에 일주일로 나눈 나머지는 M D의 요일을 찾는다
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int M = sc.nextInt();
int D = sc.nextInt();
sc.close();
int[] Month = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
String[] Day = {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"};
int result = D;
for (int i = 0; i < M - 1; i++) {
result += Month[i];
}
System.out.print(Day[result % 7]);
}
}