문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
날짜가 주어졌을 때, 해당 하는 요일을 반환해라.
입력값은 일, 월, 연도를 나타내는 세 개의 정수로 주어진다.
{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"} 값 중에 하나를 반환해라.
#1
Input: day = 31, month = 8, year = 2019
Output: "Saturday"
#2
Input: day = 18, month = 7, year = 1999
Output: "Sunday"
#3
Input: day = 15, month = 8, year = 1993
Output: "Sunday"
class Solution {
public String dayOfTheWeek(int day, int month, int year) {
String[] dayOfWeek = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
int[] dayOfMonth = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if(leapYear(year)){
dayOfMonth[2] = 29;
}
int dayOfYear = 4;
for(int i = 1971; i < year; i++){
if(leapYear(i)){
dayOfYear += 366;
}else{
dayOfYear += 365;
}
}
for(int i = 1; i < month; i++){
dayOfYear += dayOfMonth[i];
}
dayOfYear += day;
return dayOfWeek[dayOfYear % 7];
}
private boolean leapYear(int year){
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
return true;
}
return false;
}
}