https://school.programmers.co.kr/learn/courses/30/lessons/12901
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
📚문제
✏️ 좋은 풀이
class Solution {
public String solution(int a, int b) {
String answer = "";
int[] days ={0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int dayCount = 0;
for(int i=1;i<a;i++){
dayCount += days[i];
}
dayCount+= b;
String[] week = {"FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"};
answer = week[(dayCount-1)%7];
return answer;
}
}
int[ ] days : 윤년이기 때문에 2월달은 29일로 계산하여 인덱스(11) 까지 날짜를 리스트에 저장한다.
for문 : 입력받은 a(월)까지 days 의 값을 dayCount 에 반복문을 사용하여 계속 저장한다.
dayCount+=b : 월에 대한 날짜는 더했으니 입력받은 b(일) 의 값을 추가로 더한다.
answer = week[(dayCount - 1)%7] : 1월1일일때 금요일이기 때문에 리스트의 값 "FRI" 가 와야한다. 그러므로 -1 을 해서 인덱스 0 부터 시작해야한다.
✒️ 회고
- 다양한 문제 풀이 법이 있지만 LocalDate 를 사용하는법도 있었다. 최근 트랜드가 Date 는 잘 사용하지않고 LocalDate 를 사용하는 추세라고한다. 응용하는 법도 공부해봐야겠다.
'코딩테스트 > Java' 카테고리의 다른 글
[Java]숫자 짝꿍 (1) | 2025.04.22 |
---|---|
[Java]옹알이 (2) (0) | 2025.04.22 |
[Java]푸드 파이트 대회 (1) | 2025.04.15 |
[Java]가장 가까운 같은 글자 (0) | 2025.03.28 |
[Java]숫자 문자열과 영단어 (0) | 2025.03.25 |