Algorithm/Baekjoon

Baekjoon 2948 2009년 JAVA

Hunveloper 2023. 4. 21. 22:02
728x90

 

2948번: 2009년

2009년 M월 D일의 요일을 영어로 출력한다. 출력은 다음 중 하나이다. "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday".

www.acmicpc.net

문제

2009년 날짜가 주어졌을 때, 무슨 요일인지 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 D와 M이 주어진다. M월 D일이다.

출력

2009년 M월 D일의 요일을 영어로 출력한다. 출력은 다음 중 하나이다. "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday".

풀이

문제에서 1월 1일은 목요일이라고 언급을 했기에 각 월이 지날수록 요일들은 증가하게 될 것이다.

days배열을 만들고 2009년의 각 월들을 추가해준다.

1월은 더해지는 값이 없기에 0일, 2월부터는 1월의 값인 31일을 추가해서 계산해준다.

만약에 1 2가 입력된다면 이는 2월 1일의 요일을 구하는 것이다.

1월의 31일을 더하고 1일을 더하면 32가 되고 이를 7로 나눈 나머지를 day배열에서 꺼내오면 해당 요일을 찾을 수 있다.

코드
import java.util.*;

public class Main {
	public static void main(String[] args) throws Exception{
		Scanner sc = new Scanner(System.in);
		int d = sc.nextInt(), m=sc.nextInt(), ans=0;
		int [] days = new int[] {0,0,31,28,31,30,31,30,31,31,30,31,30,31};
		String [] day = { "Wednesday", "Thursday", "Friday", "Saturday", "Sunday", "Monday", "Tuesday"};
		for(int i=0;i<=m;i++)
			ans+=days[i];
		ans+=d;
		System.out.println(day[ans%7]);
	}
}

 

728x90
728x90