백준

백준 1924 2007년(Java)

Park DJ 2023. 1. 14. 04:59

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


 

해석 및 팁

 


 

먼저 월별로 날짜가 다르므로 이를 해결하기 위해 배열을 선언하여 날짜들을 넣은후 입력받은수가 m과 d라고 가정하면 

m월에 해당하는 월까지 날짜들을 더해준후 d만큼 더 더해주면 1월1일부터의 날짜가 된다. 총합에 7을 나누어주면 최종적인 요일이 나오게 된다.

 


 

Java 코드

 


import java.util.Scanner;

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

    int[] month = {31,28,31,30,31,30,31,31,30,31,30,31};            //month 배열 선언
    String[] week = {"SUN","MON","TUE","WED","THU","FRI","SAT"};     //요일 배열 선언
    int m = sc.nextInt();
    int d = sc.nextInt();
    int days = d;

    for(int i = 0; i < m - 1; i++) days += month[i];
    int n = days % 7;                                       //1월 1일이 월요일이기 때문이다

    System.out.println(week[n]);
  }
}