© 2025 anveloper.dev
GitHub·LinkedIn·Contact

목차

  • 문제
  • 입력
  • 출력
  • 예제
  • 풀이
  • 코드
  • 복잡도
풀이 목록으로 돌아가기

BOJ 2753 - 윤년

2023-06-16
BOJ
브론즈 V
java
원본 문제 보기
구현
사칙연산
수학

문제

BOJ 2753 - 윤년

연도가 주어졌을 때 윤년이면 1, 아니면 0을 출력한다.

입력

첫째 줄에 연도가 주어진다 (1 이상 4000 이하).

출력

윤년이면 1, 아니면 0을 출력한다.

예제

입력출력
20001
19990

풀이

윤년 판별 조건을 삼항 연산자로 처리한다.

  1. 연도가 4의 배수인지 확인한다
  2. 4의 배수라면 400의 배수인지 확인하여 윤년 판정한다
  3. 400의 배수가 아니면 100의 배수인지 확인하여 평년/윤년을 구분한다
  4. 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)