알고리즘

백준 알고리즘 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 == 0System.out.println(1);
         else if(a%100 == 0System.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을 출력


정도로 해석하면 될 것 같다.