알고리즘

[JAVA] 백준 알고리즘_2753(윤달)

줌인. 2024. 6. 22. 12:24

▶ 백준 알고리즘 2588

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

 

 

[문제]

연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오.

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

예를 들어, 2012년은 4의 배수이면서 100의 배수가 아니라서 윤년이다. 1900년은 100의 배수이고 400의 배수는 아니기

때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다.

 
[예제 입력]
2000
1999
 
[예제 출력]
 
1
0

 

[제출 코드]

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);
        }
    }
}

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

- 즉 4로 나누어 떨어지고, 400으로 나누어 떨어지거나 100으로 나누어 떨어지지 않을 때를 의미

 


 

[초기 실패_문제 활용 小]

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 % 400 == 0)) {
            System.out.println(1);
        } else {
            System.out.println(0);
        }
    }
}

- 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다라는 문장을 활용하지 못함

- 즉 4의 배수와 400의 배수만 활용함

728x90