1. 문제 링크
https://www.acmicpc.net/problem/16463
2. 문제 및 입출력예제
3. 문제 풀이
1. 월별 날짜를 배열에 저장해둔다.
2. N년까지 가면서 처음에 13일로 시작한 날짜가 금요일인지 판단한다.
2-1. 2019년 1월 첫 금요일이 4일이어서 7로 나눈 나머지가 4인 경우를 찾았다.
3. 월별 일수를 더한다.
4. 윤년인 경우에는 일수에 1을 더한다.
4. 코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int[] num = {31,28,31,30,31,30,31,31,30,31,30,31};
int result = 0;
int day = 13;
for(int i = 2019; i<N+1; i++) {
for(int j=0; j<12;j++) {
if(day % 7 == 4) { //금요일인지 //2019년 1월 첫 금요일이 4일
result++;
}
day+=num[j];
if(j==1 && (i%400==0 || (i%4==0 && i%100!=0))) { //윤년
day++;
}
}
}
System.out.println(result);
}
}
'ALGORITHM' 카테고리의 다른 글
백준 22251 빌런 호석 (Java) (0) | 2023.06.01 |
---|---|
백준 9935 문자열 폭발 (Java) (0) | 2023.05.31 |
백준 1926 그림 (Java) (1) | 2023.05.29 |
백준 13164 행복 유치원 (Java) (0) | 2023.05.28 |
백준1245 농장 관리 (Java) (0) | 2023.05.27 |