☕Language: Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
class Solution {
public String solution(int a, int b) {
String answer = "";
String[] strArr = {"THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED"};
int monthDay = calcMonthToDay(a) + b;
answer = strArr[monthDay%7];
return answer;
}
public static int calcMonthToDay(int month){
int day = 0;
while(--month>0){
switch (month) {
case 2:
day += 29;
break;
case 4:
case 6:
case 9:
case 11:
day += 30;
break;
default:
day += 31;
}
}
return day;
}
}
|
🤔 해설
1. calcMonthToDay(int month)
- switch문을 활용한 일자 계산
- while(--month>0)
- 해당 월은 계산하지 않으므로 전위 연산자 사용
2. String[] strArr
- 1월 1일 기준 금요일에 맞춰 strArr 선언
3. strArr[monthDay%7]
- 요일 구하기
😮 이 외의 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
class Solution {
public String solution(int a, int b) {
String answer = "";
int[] lastDayOfTheMonth = {31,29,31,30,31,30,31,31,30,31,30,31};
String[] DayOfTheWeek ={"FRI","SAT","SUN","MON","TUE","WED","THU"};
int totalDay = 0;
for(int i = 0 ; i< a-1; i++){
totalDay += lastDayOfTheMonth[i];
}
totalDay += b-1;
answer = DayOfTheWeek[totalDay %7];
return answer;
}
}
|
* 배열 활용
1
2
3
4
5
6
7
8
|
import java.time.*;
class Solution {
public String solution(int a, int b) {
return LocalDate.of(2016, a, b).getDayOfWeek().toString().substring(0,3);
}
}
|
* time 함수 사용
🔗 소스 코드
GitHub
📚 참고 자료
'Computer > Algorithm_Java' 카테고리의 다른 글
[Algorithm_Java] 광물 캐기 (Success) (0) | 2023.10.14 |
---|---|
[Algorithm_Java] 연속된 부분 수열의 합 (Success) (0) | 2023.10.13 |
[Algorithm_Java] 문자열 내 p와 y의 개수 (Success) (1) | 2023.10.11 |
[Algorithm_Java] 24480번 알고리즘 수업 - 깊이 우선 탐색 2 (Success) (0) | 2023.10.08 |
[Algorithm_Java] 15652번 N과 M (4) (Success) (1) | 2023.10.05 |