https://programmers.co.kr/learn/courses/30/lessons/12901
윤년이면 2월에 29일까지 있는 날이다.
그래서
1월 31일, 2월 29일, 3월 31일, 4월 30일, 5월 31일, 6월 30일, 7월 31일, 8월 31일, 9월 30일, 10월 31일, 11월 30일, 12월 31일 까지 있음.
그리고 1/1이 금요일이고 요일은 7개니까 찾는 월 전까지의 월수와 일수를 더해서 7로 나눈 나머지....
그니까 3/2일을 찾는다고 하면 31 + 29 + 2 = 62, 62 % 7 = 6 이므로
수요일이 된다.
코드
class Solution {
public String solution(int a, int b) {
String answer[] = {"THU","FRI","SAT","SUN","MON","TUE","WED"};
int date[] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int count = 0;
for(int i = 0; i < a; i++){
count += date[i];
}
count += b;
return answer[count % 7];
}
}
간단하게 풀 수 있다.
남의 코드 살펴보기
JAVA 8부터 등장하는 LocalDate 클라스이다.
LocalDate.of(연도, 월, 일).getDayOfWeek() 를 하면 요일이 나타나고... toString()으로 String화 해주고 TUESDAY가 아닌 TUE만 뜨게 하기 위해 substring으로 잘라줬다.
간편하구나....
아니면 Calendar 클래스를 사용할 수도 있다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 같은 숫자는 싫어 for JAVA (0) | 2022.02.15 |
---|---|
[프로그래머스] 가운데 글자 가져오기 for JAVA (0) | 2022.02.14 |
[프로그래머스] 카펫 for JAVA _ 완전 탐색 알고리즘 (0) | 2022.02.13 |
[프로그래머스] 소수 찾기 for JAVA _ 완전 탐색 알고리즘 + 순열, 소수찾기 (0) | 2022.02.13 |
[프로그래머스] 모의고사 for JAVA _ 완전탐색 알고리즘 (0) | 2022.02.11 |