https://www.acmicpc.net/problem/1924
1924번: 2007년
첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다.
www.acmicpc.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int month = sc.nextInt();
int day = sc.nextInt();
int[] months = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
String[] days = { "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT" };
int total = 0;
if ((month - 1) >= 1) {
for (int i = 1; i <= month - 1; i++) {
total += months[i];
}
}
total += day;
System.out.println(days[total % 7]);
}
}
|
cs |
처음에는 월별로 메서드를 만드는 어마어마하게 비효율적인 코드를 썼는데, 물론 성공했지만, 답만 맞게 하는 건 아무 의미 없는 것 같아서 구글링 하다가
https://rightbellboy.tistory.com/27
[백준/BOJ] 1924번 2007년 (java)
백준 온라인 저지(BOJ) 1924번 2007년 https://www.acmicpc.net/problem/1924 * 사용언어 : java, 자바 1. 문제 2007년 x월 y일은 어떤 요일인지 출력 (월요일 MON, 화요일 TUE, ... 일요일 SUN) 2. 풀이 배열..
rightbellboy.tistory.com
이분 코드를 참고했다.
1월 1일은 days[1] 이므로 MON이 출력되고,
3월 14일은 31+28+14=73인데 여기서 7로 나누면 나머지가 3이다. 그러므로 WEDr가 출력되는 것을 알 수 있다.
1월1일의 요일이 언제인지 확인하고 작성하면 어떤 윤년빼고는 다 가능하다.
글을 작성하는 시점인 2021년은 1월1일이 금요일이였다. 즉 나머지가 1이 되는게 금요일이라는 것이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int month = sc.nextInt();
int day = sc.nextInt();
int[] months = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
String[] days = { "THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED" };
int total = 0;
if ((month - 1) >= 1) {
for (int i = 1; i <= month - 1; i++) {
total += months[i];
}
}
total += day;
System.out.println(days[total % 7]);
}
}
|
cs |

2021년 7월 20일은 화요일로 정확하게 나온다.
'알고리즘 > 입출력' 카테고리의 다른 글
[java 백준] 브론즈 3/ 2442번 별찍기-5 (0) | 2021.07.26 |
---|---|
[java 백준] 브론즈 3/ 2441번 별찍기 -4 (0) | 2021.07.20 |
[java 백준] 브론즈 2/11721 번 열 개씩 끊어 출력하기 (0) | 2021.07.20 |
[java 백준] 브론즈 2/ 11720번 숫자의 합 (0) | 2021.07.20 |
[java 백준] 브론즈 3/ 11718번 그대로 출력하기 (0) | 2021.07.20 |
댓글