코딩응급실
프로그래머스: 2016년 본문
import java.util.*;
class Solution {
public String solution(int a, int b) {
String answer = "";
int[] c = {31,29,31,30,31,30,31,31,30,31,30,31};
String[] MM ={"FRI","SAT","SUN","MON","TUE","WED","THU"};
int Adate = 0;
for(int i = 0 ; i< a-1; i++){
Adate += c[i];
}
Adate += b-1;
answer = MM[Adate % 7];
return answer;
}
public static void main(String[] args) {
int a = 5;
int b = 24;
Solution sol = new Solution();
String result = sol.solution(a,b);
System.out.println(result);
}
}
b-1을 더하는 이유는 배열 인덱스가 0부터 시작하고 1월 1일을 기준으로 삼기 때문입니다. 예를 들어 1월 1일은 b-1이 0이 되어 Adate에 더해지지 않습니다.
그리고 Adate를 7로 나눈 나머지를 구하면, 그것이 요일을 나타내는 배열 MM의 인덱스가 됩니다. 따라서 MM[Adate % 7]은 해당 날짜의 요일을 나타내게 됩니다.
예를 들어, 5월 24일을 계산하려면, 1월부터 4월까지의 날짜 수를 더하고 (이것이 for 루프에서 하는 일입니다), 그리고 5월의 날짜 수를 더하게 됩니다. 이 때 5월 24일이므로 b-1은 23이 되어 Adate에 더해집니다. 그러면 Adate는 1월 1일부터 5월 24일까지의 전체 날짜 수가 됩니다.
'Java' 카테고리의 다른 글
프로그래머스: JadenCase 문자열 만들기 (0) | 2024.03.02 |
---|---|
프로그래머스: 폰켓몬 (0) | 2024.03.02 |
프로그래머스: 가운데 글자 가져오기 (0) | 2024.03.02 |
프로그래머스: 같은 숫자는 싫어 (0) | 2024.03.02 |
프로그래머스: 나누어 떨어지는 숫자 배열 (0) | 2024.03.02 |