알고리즘
백준 알고리즘 2753번
Greatshine
2022. 9. 6. 15:49
https://www.acmicpc.net/problem/2753
2753번: 윤년
연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서
www.acmicpc.net

문제를 보며 유의해야 할 점은 '윤년은 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다.'
문제 흐름 상 100의 배수도 윤년이구나 하며 풀었는데 자세히 보니 100의 배수가 아닐 때였다.
정답
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
if(a%4 == 0){
if(a%400 == 0) System.out.println(1);
else if(a%100 == 0) System.out.println(0);
else System.out.println(1);
} else System.out.println(0);
}
}
|
cs |
조건을 해석하자면
만약 a나머지 4가 0이라면 {
만약 a나머지 4가 0이고 a나머지 400이 0이라면 1을 출력
만약 a나머지 4가 0이고 a나머지 100이 0이라면 0을 출력
만약 a 나머지 4가 0이면 1을 출력
} a 나머지 4가 0이 아니라면 0을 출력
정도로 해석하면 될 것 같다.