[백준] 1924번: 2007년

응갱·2022년 7월 10일
1

백준

목록 보기
8/56
post-thumbnail

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

문제

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

코드

import java.util.Scanner;

public class pr1924 {

	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		int x=s.nextInt();
		int y=s.nextInt();
		
		int[] month= {31,28,31,30,31,30,31,31,30,31,30,31};
		String[] days= {"SUN","MON","TUE","WED","THU","FRI","SAT"};
		
		int sum=0;
		
		for(int i=0;i<x-1;i++) {
			sum+=month[i];
		}
		sum+=y;
		System.out.println(days[sum%7]);
	}

}

코드 해석

요일이 계산되는 방법을 나타내었다.
예를 들어, 2월 3일이 입력된 경우 31+3을 sum에 저장한 후 (sum%7)로 요일을 출력하도록 하였다.

🥔감자의 과정🥔

처음엔 아무리 생각해도 무슨 규칙인지 몰라서 무작정 2차원 배열로 풀어보기도 하고, 31일인 경우 다음 월의 1일이 이전 월의 1일에 +3한 요일인 ,, 규칙이 있어서 생각해봤는데 아닌 것 같았다 ..

요일을 계산하는데 이런 규칙이 있는지 처음 알았다,,

profile
🥔 한 덩이

0개의 댓글