거꾸로 바라본 세상
반응형

[BAEKJOON:1924] 2007년

문제

오늘은 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중 하나를 출력한다.

예제 입력
1 1
예제 출력
MON

해결

  1. 월의 date의 총 합(day)을 구하고, day를 입력한 일(y)만큼 더해준다.
  2. 총 일수를 7(일주일은 7일)로 나눈 나머지를 통해 해당 요일을 구한다(0 ,1 ,2 ,3 ,4 ,5 ,6 일~토)

코드

import java.util.Scanner;

public class Main {
    enum DATE {
        SUN, MON, TUE, WED, THU, FRI, SAT;
    }
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int[] date = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        int x = scan.nextInt();
        int y = scan.nextInt();
        int day = 0;

        for (int i = 1; i < x; i++) {
            day += date[i-1];
        }

        System.out.println(DATE.values()[(day + y) % 7]);
        scan.close();
    }
}
반응형
profile

거꾸로 바라본 세상

@란지에。

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!