문제 풀이 (JAVA)
class Solution {
public String solution(int a, int b) {
String answer = "";
int totaldays=0;
int[] months = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; // 매월 마지막일
String[] days = { "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT" }; // 요일 변수
for(int i=0; i<a-1; i++){
totaldays+=months[i]; // 요일수 계산
}
totaldays+=b-1; // 1월 1일을 제외한 총 날짜 계산
answer=days[(totaldays+5)%7];
// 1월1일이 금요일이므로 일요일을 기준으로 5일을 더한 수를 나누면 금요일을 기준으로 날짜를 계산하게 된다.
return answer;
}
}
주요 핵심 포인트
1. 윤년의 매월 마지막 일이 몇일인지를 알아야 한다.
2. 요일을 계산하기 위한 요일변수 배열을 선언한다.
3. 1월 1일을 제외한 총 일수를 계산한다.
4. 1월 1일이 금요일이므로 초기 변수를 금요일로 하기 위해 +5를 하여 7로 나머지 연산을 하였다.
'프로그래머스(JAVA)' 카테고리의 다른 글
예산 (0) | 2022.05.21 |
---|---|
두 개 뽑아서 더하기 (0) | 2022.05.21 |
최소직사각형 (0) | 2022.04.24 |
나머지가 1이 되는 수 찾기 (0) | 2022.04.24 |
부족한 금액 계산하기 (0) | 2022.04.24 |