본문 바로가기
Algorithm/Baekjoon

[백준] 2753번 : 윤년 - Java

by unknownomad 2022. 2. 14.

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

 

2753번: 윤년

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

www.acmicpc.net



구현 방법

입력 방식

  • Scanner
  • BufferedReader
    readLine()으로 입력 받아 연산
    이때 String 타입으로 입력되기에 Integer.parseInt()를 통해 String ➡ int으로 형변환 필수

 

조건 필터 방식

  • if 문
  • if 문 + 삼항연산자

풀이

1.1. Scanner + if 문

import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
    
        //입력
        Scanner in = new Scanner(System.in);
        int y = in.nextInt();
        in.close();
        
        //조건 필터
        if(y % 4 == 0) {
            if(y % 400 == 0) System.out.println("1");
            else if(y % 100 == 0) System.out.println("0");
            else System.out.println("1");
        }
        else System.out.println("0");
    }
}

 

1.2. Scanner + if 문 + 삼항연산자

import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
    
        //입력
        Scanner in = new Scanner(System.in);	
        int y = in.nextInt();
        in.close();
        
        //조건 필터
        System.out.print((y % 4 == 0) ? ((y % 400 == 0) ? "1" : (y % 100 == 0) ? "0" : "1") : "0");
    }
}

2.1. BufferedReader + if 문

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
 
public class Main {
    public static void main(String[] args) throws IOException {
        
        //입력
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int y = Integer.parseInt(br.readLine());
		
        //조건 필터
        if(y % 4 == 0) {
            if(y % 400 == 0) System.out.println("1");
            else if(y % 100 == 0) System.out.println("0");
            else System.out.println("1");
        }
        else System.out.println("0");
    }
}

 

2.2. BufferedReader + if 문 + 삼항연산자

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
 
public class Main {
    public static void main(String[] args) throws IOException {
        
        //입력
        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");
    }
}

성능

  •  BufferedReader > Scanner

 


출처 : https://st-lab.tistory.com/23

댓글