반응형
-내 생각
특정 일수가 주어지고 해당 일자의 요일을 구하는 문제이다. 이런 유형의 문제는 처음 풀어봐서 어떻게 풀어야 할지 감을 잡지 못했는데, 잘 생각해보면 1주일이 지날 때마다 7씩 증가하므로, 1/1이 월요이라면, 8일도 월요일, 15일도 월요일.... 식으로 가게 된다. 그러므로 특정 일자 % 7로 어느 요일에 속하는지 알 수 있게 된다.
그렇다면 특정 월과 일이 총 며칠인지 어떻게 구해야 할지 고민해보았는데, 생각해보면 간단하다. 예를 들어 3월 6일이라고 가정한다면 1월과 2월의 총일수를 6일과 더해주면 된다. 각 월의 총일수는 문제에서 주어지므로 구현이 가능해진다.
-해법
import java.util.*;
public class Main {
static int month_Day[] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; // 각 월별 일자 저장
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
int y = sc.nextInt();
int sum_day =0;
for(int i=1;i<x;i++) { // 입력 월의 이전 월까지 총 일수를 구한다.
sum_day+=month_Day[i];
}
sum_day+=y; // 마지막으로 입력받은 일자를 더해준다.
switch(sum_day % 7) { //7의 나머지값을 이용해 분기처리
case 0:
System.out.println("SUN");
break;
case 1:
System.out.println("MON");
break;
case 2:
System.out.println("TUE");
break;
case 3:
System.out.println("WED");
break;
case 4:
System.out.println("THU");
break;
case 5:
System.out.println("FRI");
break;
case 6:
System.out.println("SAT");
break;
}
}
}
반응형