https://programmers.co.kr/learn/courses/30/lessons/12901
- 요일을 출력해줄 요일 배열을 만들고, 2016년의 달 마다 지난 달의 일 수를 담은 배열도 만들어준다.
- "2016년 1월 1일은 금요일"이라고 문제에 주어져있다. 입력 받은 월(a) - 1 만큼 일 수를 보내고 b일 지났으므로 일 수를 담은 배열를 더해주고 b또한 더해주어 그 수를 7로 나눈 나머지 만큼 요일을 보내면 a월 b일의 요일을 구할 수 있다.
- 총 지난 날을 7로 나누고 그 수에서 1을 빼주면 며칠이 지났는지 구할 수 있다. 이때, 나머지가 0에서 -1이 되는 경우를 대비해 if문을 통해 -1이 될 시 6일이 경과 됐다고 표시.
- 요일 배열에서 경과 된 일수를 호출하면 무슨 요일인지 출력된다.
public class Solution {
public String solution(int a, int b) {
int day = 0;
String[] week = { "FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"};
int[] month = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30};
for(int i=0; i<a; i++) {
day += month[i];
}
day = ((day + b) % 7) - 1;
if(day== -1) {
day = 6;
}
String answer = week[day];
return answer;
}
}