728x90
문제
풀이
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int year = sc.nextInt();
sc.close();
// 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다.
if(year%4 == 0 && (year % 100 != 0 || year % 400 == 0)) {
System.out.println(1);
} else {
System.out.println(0);
}
}
}
윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다.
기본으로 먼저 4의 배수인지 판단 한 후 4의 배수일 경우 400으로 나뉘어 떨어지는지, 100으로 나뉘어 떨어지는지 판단을 해야한다.
1. 4의 배수이면서(&&(AND)논리연산자 사용) -> 4로 나눴을 때 나머지가 0이면 된다.
100의 배수가 아닐때 또는(||(OR)논리연산자 사용) 400의 배수일 때이다.
1-1 단계 : 100의 배수가 아닐 경우 -> 100으로 나눴을 때 나머지가 0이면 아니면 된다
1-2 단계 : 4의 배수이면서 400의 배수일 경우 -> 400으로 나눴을 때 나머지가 0이면 된다
2. 4의 배수가 아닐 경우- else
출처
https://www.acmicpc.net/problem/2753
2753번: 윤년
연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서
www.acmicpc.net
'Algorithm' 카테고리의 다른 글
[백준] 2. 조건문 - 2884. 알람 시계 (Java11) (0) | 2023.01.20 |
---|---|
[백준] 2. 조건문 - 14681. 사분면 고르기 (Java11) (0) | 2023.01.20 |
[백준] 2. 조건문 - 9498. 시험 성적 (Java11) (0) | 2023.01.20 |
[백준] 2. 조건문 - 1330. 두 수 비교하기 (Java11) (0) | 2023.01.20 |
[백준] 1. 입출력과 사칙연산 - 2588. 곱셈 (Java11) (0) | 2023.01.18 |