본문 바로가기

백준 문제풀기/JAVA

[백준 1924 JAVA 자바] 2007년

이 문제가 2007년에 만들어진걸까요?

저는 2007년엔 초딩이었는데

시간 참 빠르네요

 

1. x월 y일 =  n일 로 변환해서

2. mod7을 하여서

3. 어떤 요일인지 찾아봅시다

 

코드입니다

import java.util.Scanner;

public class Main {
	public static void main(String args[]){
		Scanner scan = new Scanner(System.in);
		
		int m = scan.nextInt();
		int d = scan.nextInt();
		
		switch (m) {
		case 2 :
			d += 31;
			break;
		case 3 :
			d += 59;
			break;
		case 4 :
			d += 90;
			break;
		case 5 :
			d += 120;
			break;
		case 6 :
			d += 151;
			break;
		case 7 :
			d += 181;
			break;
		case 8 :
			d += 212;
			break;
		case 9 :
			d += 243;
			break;
		case 10 :
			d += 273;
			break;
		case 11 :
			d += 304;
			break;
		case 12 :
			d += 334;
			break;
		default :
			break;
		}
		
		String ans = "";
		
		switch(d%7) {
		case 1:
			ans = "MON";
			break;
		case 2:
			ans = "TUE";
			break;
		case 3:
			ans = "WED";
			break;
		case 4:
			ans = "THU";
			break;
		case 5:
			ans = "FRI";
			break;
		case 6:
			ans = "SAT";
			break;
		case 0:
			ans = "SUN";
			break;
		}
		System.out.println(ans);
		
	}
}

 

완전 노가다군요!

 

아쉽게도 제 머리에는

31 28 31 30 31 30 31 31 30 31 30 31 를

switch 나 if 말고 깔끔하게 계산하는 방법을 찾지 못했습니