profile image

L o a d i n g . . .

article thumbnail image
Published 2023. 7. 6. 00:02

https://www.acmicpc.net/problem/2753


import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int year = 0;
        year = scanner.nextInt();

        if ((year % 4 == 0) && (year % 100 != 0)) {
            System.out.println(1);
        } else if (year % 400 == 0) {
            System.out.println(1);
        } else {
            System.out.println(0);
        }
    }
}

문제에서 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때, 또는 400의 배수일 때 라고 되어 있습니다.

일단 사용자의 입력을 받을 변수를 선언합니다.

        Scanner scanner = new Scanner(System.in);

        int year = 0;
        year = scanner.nextInt();

 

그 다음, 4의 배수이면서 (year % == 0) 100의 배수가 아닌 (year % 100 != 0) 값을 찾습니다.

만약 찾았다면 1을 출력합니다.

        if ((year % 4 == 0) && (year % 100 != 0)) {
            System.out.println(1);

2000년은 4, 100, 400의 배수라서 윤년입니다. 하지만 첫번째 if문에서는 100의 배수가 아닌 것을 찾기 때문에 2000년은 false 값이 됩니다. 이러한 조건을 찾기 위해 만약 false 값이 나왔을 때, 400으로도 나누어지는지 한 번 더 검사합니다.

        } else if (year % 400 == 0) {
            System.out.println(1);

평년이라면 0을 출력합니다.

        } else {
            System.out.println(0);

'백준 > Java' 카테고리의 다른 글

[백준][Java] 10950 - A+B - 3  (0) 2023.07.10
[백준][Java] 10872 - 팩토리얼  (0) 2023.07.06
[백준][Java] 14681 - 사분면 고르기  (0) 2023.07.04
[백준][Java] 11382 - 꼬마 정민  (0) 2023.07.04
[백준][Java] 1000 - A+B  (0) 2023.07.03
복사했습니다!