o 요구사항
두 자연수를 인자값으로 받아 요일을 반환하기
일주일은 7일이므로 월요일부터 일요일까지 7개중 1개를 결과값으로 return하게 된다
o 코드진행
매개값으로 주어지는 월(a)과 일(b)을 받아 총 지난 총 일자를 구한뒤, 7로 나눠 요일을 구한다
o 코드설계
월별로 날짜개수를 항목으로 하는 정수형 배열(intArr)을 생성
for 반복문을 사용하여 a값 전까지 배열intArr의 항목 더하고 b값으로 일자를 더한다
2016년 첫 시작은 금요일이므로 적당한 숫자를 넣어 시작요일을 맞춰준다
일주일은 7일이므로 7로 나눈 나머지를 구하고 switch() 구문을 이용하여 경우의 수 분기하기
o 완성코드
public class Solution {
public String solution(int month, int day) {
int[] intArr = new int[] {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int total = 0;
for(int i=0; i<month-1; i++) {
total += intArr[i];
}
total += day;
total += 4; //첫 요일 조정
final String d0 = "SUN";
final String d1 = "MON";
final String d2 = "TUE";
final String d3 = "WED";
final String d4 = "THU";
final String d5 = "FRI";
final String d6 = "SAT";
String answer = "";
switch (total%7) {
case 1:
answer = d1;
break;
case 2:
answer = d2;
break;
case 3:
answer = d3;
break;
case 4:
answer = d4;
break;
case 5:
answer = d5;
break;
case 6:
answer = d6;
break;
default:
answer = d0;
break;
}
return answer;
}
}
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[Java][프로그래머스-코딩테스트 level2] 피보나치 수 (0) | 2021.06.12 |
---|---|
[Java][프로그래머스-코딩테스트 level1] 3진법 뒤집기 (0) | 2021.06.11 |
[Java][프로그래머스-코딩테스트 level1] 약수의 개수와 덧셈 (0) | 2021.06.10 |
[Java][프로그래머스-코딩테스트 level1] 로또의 최고 순위와 최저 순위 (0) | 2021.06.10 |
[Java][프로그래머스-코딩테스트 level1] 폰켓몬 (0) | 2021.06.10 |