본문 바로가기
알고리즘/백준

[백준 1924] 2007년

by binghe819 2020. 4. 11.

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

 

1. 풀이

문제에서 1월 1일이 월요일이라고 했고, 기존의 달력 체계를 지키므로 아래와 같은 표가 나옵니다. 노란색, 파란색, 빨강색 순서대로 1,2,3월을 나타냅니다.

월 
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 32 33 34
35 36 37 38 39 40 41
42 43 44 45 46 47 48
49 50 51 52 53 54 55
56 57 58 59 60 61 62
63 64 65 67 68 69 70
71 72 73 74 75 76 77

1월부터 입력한 month-1달까지 모두 더한 후, 입력한 day와 합칩니다. 그리고 7로 나눈 나머지로 요일을 맞출 수 있습니다.

 

ex. 3월 14일 : 1월(31)+2월(28)+14 = 73, 요일은 73 % 7 = 3 ( WED )입니다.

 

2. 코드

import java.util.*;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int month = sc.nextInt();
		int day = sc.nextInt();
		
		int[] dayOfMonth = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
		String[] dayOfWeek = {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"};
		
        // 입력한 month-1만큼만 배열에서 일수를 더해줍니다.
		for(int i = 0; i < month-1;i++)
			day+=dayOfMonth[i];
            
		System.out.println(dayOfWeek[day % 7]);

		sc.close();
		return;
	}
}

'알고리즘 > 백준' 카테고리의 다른 글

[백준 9093] 단어 뒤집기 - 자바  (0) 2020.04.23
[백준 10828] 스택 - 자바  (0) 2020.04.23
[백준 1697] 숨바꼭질 - 자바  (0) 2020.04.05
[백준 1260] DFS와 BFS - 자바  (0) 2020.04.04
[백준 1946] 신입 사원  (0) 2020.04.03

댓글