Algorithm/BOJ(Baekjoon Online Judge)

[백준 2753번] 윤년 - JAVA //Wello Horld//

koucop 2019. 6. 26. 15:04

백준 알고리즘 2753번 윤년을 풀어보자

일반적으로 우리가 사는 1년은 365일 인데, 윤년일 경우 2월이 29일이 되어서, 366일이 된다.

4년에 1번씩 이 주기가 반복 되는데 예외가 존재한다.

이러한 연도와 윤년과의 관계에 대해 얘기해 주는 문제이다.

문제 자체는 매우 쉽다. 


"윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다."


를 그대로 코드로 바꾸어 주면, (연도를 a 로 정의한다)

a % 4 == 0 && (a % 100 != 0 || a % 400 == 0)

와 같이 나타내 줄 수 있다.

윤년이면 "1" 을 윤년이 아니면 "0" 을 출력해야 되므로, 전체 코드는

import java.io.*;
import java.util.*;

public class sample{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        if(a % 4 == 0 && (a % 100 != 0 || a % 400 == 0)) {
            System.out.println("1");
        } else {
            System.out.println("0");
        }
        sc.close();
    }
}

조건문만 알면 풀 수 있는 아주 쉬운 문제였네요.

조건문 안에를 어떻게 넣어야 될지 잘 모르는 사람들을 위해, 위에 코드를 풀어서 써드릴게요.

import java.io.*;
import java.util.*;

public class sample{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        if(a % 4 == 0) {
            if(a % 100 != 0 || a % 400 == 0){
                System.out.println("1");
            } else {
                System.out.println("0");
            }
        } else {
            System.out.println("0");
        }
        sc.close();
    }
}

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