BAEK_2753(윤년)

Max·2022년 8월 21일
0

BAEKJOON

목록 보기
3/21

백준 2753 윤년



- 문제

연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오.
윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다.

예를 들어,
2012년은 4의 배수이면서 100의 배수가 아니라서 윤년이다. 1900년은 100의 배수이고 400의 배수가 아니기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다.


- 입력

첫째 줄에 연도가 주어진다. 연도는 1보다 크거나 같고, 4000보다 작거나 같은 자연수이다.



- 풀이


  • 방법 1
import java.util.Scanner;

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

기초적인 방법으로 풀 수 있다.
Scanner로 값을 입력받고 if조건문으로 문제에 나온 조건울 코드로 풀어 내면 된다.

"4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때"

(year % 4 == 0 && year % 100 != 0) || year % 400 == 0
이와 같이 나타낼 수 있다.


  • 방법 2
import java.util.Scanner;
import java.util.GregorianCalendar;

public class Main {
	public static void main(String[] args) {
    	Scanner sc = new Scanner(System.in);
        GregorianCalendar gc = new GregorianCalendar();
        
        int year = sc.nextInt();
        
        if(gc.isLeapYear(year)) {
        	System.out.println("1");
       	} else {
        	System.out.println("0");
        }
    }
}     

방법1과 같은 방식으로 Scanner로 값을 입력받고
isLeapYear() 메소드로 매개값이 윤년이면 TRUE 아니면 FALSE를 리턴해
조건문을 실행 시킨다.





profile
co_der

0개의 댓글