Notice
Recent Posts
Recent Comments
«   2024/12   »
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
Archives
Today
Total
관리 메뉴

Cafe Binary Notation

[백준 알고리즘 1924번] 2007년 (자바) 본문

Java/알고리즘

[백준 알고리즘 1924번] 2007년 (자바)

켄달지나 2018. 2. 13. 22:03

단계별로 풀기: 3단계-8



문제:

오늘은 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
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
import java.util.*;
 
public class Main {
    public static void main(String[] args){
        
        Scanner scan = new Scanner(System.in);
        
        int month = scan.nextInt();
        int day = scan.nextInt();
        
        int sum = 0;
        
        int[] months = {0312831303130313130313031};
        
        for(int i=1; i<=12; i++) { 
            if(i==month) {
                break;
            }
            sum += months[i];                  
        }
        
        sum += day;
        
        int left = sum%7;
        switch(left) {
        
        case 0 : System.out.println("SUN"); break;
        case 1 : System.out.println("MON"); break;
        case 2 : System.out.println("TUE"); break;
        case 3 : System.out.println("WED"); break;
        case 4 : System.out.println("THU"); break;
        case 5 : System.out.println("FRI"); break;
        case 6 : System.out.println("SAT"); break;
        
        
        }
        
        
    }
}
 
cs



 


X월 Y일이 무슨 요일이야?? 라고 하면,

각 월당 1일은 무슨요일인지를 알아야 할거같고, 그걸 뭐 어떻게 기억해놔야하나? 어째야하지??

이러지도 못하고 저러지도 못하고

그냥 무수한 연습장만 버렸다고 한다...



그냥 X월 Y일 하면

1월부터 X-1월까지 모든 날짜를 다 더하고, X월의 Y일까지 더해주고 7로 나눈 나머지를 구해줘서

그 나머지의 값마다 요일을 부여해주면 된다.



솔직히

혼자서는 몇날몇일 생각해도 이렇게 생각 못했을거 같다..

뭔가 7로 나눈 나머지로 해야된다는 생각은 슬쩍 들었지만

지난 월들의 일수를 다 더한다는 생각은... 

흑 ㅜ_ㅜ