백준
백준 1924 2007년(Java)
Park DJ
2023. 1. 14. 04:59
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
해석 및 팁
먼저 월별로 날짜가 다르므로 이를 해결하기 위해 배열을 선언하여 날짜들을 넣은후 입력받은수가 m과 d라고 가정하면
m월에 해당하는 월까지 날짜들을 더해준후 d만큼 더 더해주면 1월1일부터의 날짜가 된다. 총합에 7을 나누어주면 최종적인 요일이 나오게 된다.
Java 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] month = {31,28,31,30,31,30,31,31,30,31,30,31}; //month 배열 선언
String[] week = {"SUN","MON","TUE","WED","THU","FRI","SAT"}; //요일 배열 선언
int m = sc.nextInt();
int d = sc.nextInt();
int days = d;
for(int i = 0; i < m - 1; i++) days += month[i];
int n = days % 7; //1월 1일이 월요일이기 때문이다
System.out.println(week[n]);
}
}