[알고리즘] 윤년 판단하기

msriver·2020년 6월 3일
0

알고리즘/자료구조

목록 보기
12/20
post-custom-banner

윤년

보통 1년은 365일이라 하지만 이는 정확하지 않다. 즉 지구가 완전히 태양을 한바퀴 도는 일 수는 365일하고 조금 더 걸린다. 그리하여 4의 배수인 해는 윤년이라 이름을 부르고 366일로 한다. 2월달이 28일이 아닌 29일이 됨.
그러나 이마저도 정확하지 않아 만약 100의 배수인데 400으로 나누어떨어지지 않는 해는 평년으로 한다.

예를 들어)
1997년은 4의 배수가 아니므로 평년이다.
2000년은 4의 배수지만 400의 배수도 되므로 (400의 배수는 당연히 100의 배수) 윤년이다.
1900년은 4의 배수이지만 400의 배수가 아니다. 즉 평년이다.

정수 숫자를 입력받아 그 해가 윤년인지 아닌지를 판단하는 메서드를 작성해보겠다.

순서는 이러하다. 입력받은 정수를 year이라 한다.
1. year가 4의 배수인가 아닌가? 먼저 검사
👌 4의 배수가 아니라면! 볼것도 없이 평년
2. 만일 4의 배수라면? 100의 배수인지 아닌지 검사
👌 100의 배수가 아니라면! 볼것도 없이 윤년
3. 100의 배수가 맞으면? 400의 배수인지 아닌지 검사
👌 400의 배수라면! 윤년 , 400의 배수가 아니라면! 평년

하여 다음과 같은 메서드를 작성하였음.

static String isLeap(int year){
	return ( year%4==0 && year%100!=0 || year%400==0) ? "윤년" : "평년";
}
profile
NOBODY
post-custom-banner

0개의 댓글