[백준,BOJ 1924] 2007년(JAVA 구현)
코테/백준 온라인 저지(BOJ)

[백준,BOJ 1924] 2007년(JAVA 구현)

반응형

-내 생각 

  특정 일수가 주어지고 해당 일자의 요일을 구하는 문제이다. 이런 유형의 문제는 처음 풀어봐서 어떻게 풀어야 할지 감을 잡지 못했는데, 잘 생각해보면 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;
		}
		
		
	}
	
}
반응형