Cafe Binary Notation
[백준 알고리즘 1924번] 2007년 (자바) 본문
단계별로 풀기: 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 = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; 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로 나눈 나머지로 해야된다는 생각은 슬쩍 들었지만
지난 월들의 일수를 다 더한다는 생각은...
흑 ㅜ_ㅜ
'Java > 알고리즘' 카테고리의 다른 글
[백준 알고리즘 11720번] 숫자의 합 (자바) (2) | 2018.02.14 |
---|---|
[백준 알고리즘 8393번] 합 (자바) (0) | 2018.02.13 |
[백준 알고리즘 2441번] 별찍기-4 (자바) (2) | 2018.02.08 |
[백준 알고리즘 2440번] 별찍기-3 (자바) (4) | 2018.02.08 |
[백준 알고리즘 2439번] 별찍기-2 (자바) (0) | 2018.02.07 |