문제
연도가 주어졌을 때 윤년이면 1, 아니면 0을 출력한다.
입력
첫째 줄에 연도가 주어진다 (1 이상 4000 이하).
출력
윤년이면 1, 아니면 0을 출력한다.
예제
| 입력 | 출력 |
|---|---|
2000 | 1 |
1999 | 0 |
풀이
윤년 판별 조건을 삼항 연산자로 처리한다.
- 연도가 4의 배수인지 확인한다
- 4의 배수라면 400의 배수인지 확인하여 윤년 판정한다
- 400의 배수가 아니면 100의 배수인지 확인하여 평년/윤년을 구분한다
- 4의 배수가 아니면 평년이다
핵심 아이디어: 윤년 조건은 (4의 배수이면서 100의 배수가 아님) 또는 (400의 배수)이다. 중첩 삼항 연산자로 한 줄에 처리한다.
코드
package day499;
import java.io.*;
public class Day495BOJ2753윤년 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int y = Integer.parseInt(br.readLine());
System.out.print((y % 4 == 0) ? ((y % 400 == 0) ? "1" : (y % 100 == 0) ? "0" : "1") : "0");
}
}복잡도
- 시간: O(1)
- 공간: O(1)