- 각 요일들을 초기화한 문자열 배열 week를 만든다.
- 1~12월의 마지막 일을 초기화한 정수형 배열 endDay를 만든다.
- 0부터 a-1월까지 res에 각 마지막 일수를 더하고 b일을 더한다.
- res를 7로 나누었을 때의 나머지 값의 week 인덱스 값을 answer에 대입하고 반환한다.
/*
* 프로그래머스 Lv1 - 2016년
* 문제링크: https://programmers.co.kr/learn/courses/30/lessons/12901
*/
class Solution {
public String solution(int a, int b) {
String answer = "";
String[] week = {"THU","FRI","SAT","SUN","MON","TUE","WED"};
// 2016년 1월 1일은 금요일이라서 2번째 인덱스에 임의적으로 위치
int[] endDay = {31,29,31,30,31,30,31,31,30,31,30,31};
// 2016년은 윤년이기에 2월은 29일로 초기화
int res = 0;
for(int i = 0; i<a-1; i++)
res+=endDay[i];
res+=b;
answer = week[(res%7)];
return answer;
}
}
2016년 1월 1일은 금요일이라서 금요일의 인덱스 위치에 따라 알고리즘 방식이 달라지는데 이러한 점을 초반에 찾지 못하여서 꽤 시간이 걸린 것 같다.