https://www.acmicpc.net/problem/1924
1. 풀이
문제에서 1월 1일이 월요일이라고 했고, 기존의 달력 체계를 지키므로 아래와 같은 표가 나옵니다. 노란색, 파란색, 빨강색 순서대로 1,2,3월을 나타냅니다.
일 | 월 | 화 | 수 | 목 | 금 | 토 |
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 |
35 | 36 | 37 | 38 | 39 | 40 | 41 |
42 | 43 | 44 | 45 | 46 | 47 | 48 |
49 | 50 | 51 | 52 | 53 | 54 | 55 |
56 | 57 | 58 | 59 | 60 | 61 | 62 |
63 | 64 | 65 | 67 | 68 | 69 | 70 |
71 | 72 | 73 | 74 | 75 | 76 | 77 |
1월부터 입력한 month-1달까지 모두 더한 후, 입력한 day와 합칩니다. 그리고 7로 나눈 나머지로 요일을 맞출 수 있습니다.
ex. 3월 14일 : 1월(31)+2월(28)+14 = 73, 요일은 73 % 7 = 3 ( WED )입니다.
2. 코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int month = sc.nextInt();
int day = sc.nextInt();
int[] dayOfMonth = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
String[] dayOfWeek = {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"};
// 입력한 month-1만큼만 배열에서 일수를 더해줍니다.
for(int i = 0; i < month-1;i++)
day+=dayOfMonth[i];
System.out.println(dayOfWeek[day % 7]);
sc.close();
return;
}
}
'알고리즘 > 백준' 카테고리의 다른 글
[백준 9093] 단어 뒤집기 - 자바 (0) | 2020.04.23 |
---|---|
[백준 10828] 스택 - 자바 (0) | 2020.04.23 |
[백준 1697] 숨바꼭질 - 자바 (0) | 2020.04.05 |
[백준 1260] DFS와 BFS - 자바 (0) | 2020.04.04 |
[백준 1946] 신입 사원 (0) | 2020.04.03 |
댓글