Algorithm/Baekjoon
Baekjoon 2948 2009년 JAVA
Hunveloper
2023. 4. 21. 22:02
728x90
문제
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