신규 블로그를 만들었습니다!
문제
오늘은 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
코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main{
// 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다.
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
String[] input = br.readLine().trim().split(" ");
int month = Integer.parseInt(input[0]);
int day = Integer.parseInt(input[1]);
for (int i = 1; i < month; i++) {
switch (i) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day += 31;
break;
case 4:
case 6:
case 9:
case 11:
day += 30;
break;
case 2:
day += 28;
break;
default:
System.out.println("잘못된 값");
}
}
day %= 7;
// 1: 월, 2:화, 3:수, 4:목, 5:금, 6:토, 0:일
// SUN, MON, TUE, WED, THU, FRI, SAT
switch (day) {
case 0:
System.out.print("SUN");
break;
case 1:
System.out.print("MON");
break;
case 2:
System.out.print("TUE");
break;
case 3:
System.out.print("WED");
break;
case 4:
System.out.print("THU");
break;
case 5:
System.out.print("FRI");
break;
case 6:
System.out.print("SAT");
break;
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
※ 직접 문제 풀고 돌려본 뒤, 채점까지 마친 후에 작성한 글입니다.
더 좋은 방법이 있다면, 댓글로 알려주시면 감사하겠습니다 :)
'Algorithm > 백준 온라인 저지' 카테고리의 다른 글
백준/11720번 :: 숫자의 합 (Java 구현) (4) | 2018.06.23 |
---|---|
백준/8393번 :: 합 (Java 구현) (4) | 2018.06.23 |
백준/2441번 :: 별찍기 - 4 (Java 구현) (4) | 2018.06.23 |
백준/2440번 :: 별찍기 - 3 (Java 구현) (2) | 2018.06.23 |
백준/7576번 :: 토마토 (Java 구현) BFS 깊이우선탐색 (2) | 2018.06.19 |
최근댓글