https://www.acmicpc.net/problem/2753
2753번: 윤년
연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서
www.acmicpc.net
Answer 1
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 inputYear = Integer.parseInt(br.readLine());
int answerFlag = 0;
if((inputYear % 4 == 0) && ((inputYear % 100 != 0) || inputYear % 400 == 0)) answerFlag = 1;
System.out.println(answerFlag);
}
}
Code Explanation
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
사용자로부터 입력을 바이트 단위로 받기위해 입력 스트림 `System.in`을 사용했다.
Scanner 클래스보다 BufferedReader 클래스가 더 효율적인 메모리를 가지기 때문에 사용했다.
if((inputYear % 4 == 0) && ((inputYear % 100 != 0) || inputYear % 400 == 0))
조건을 AND와 OR를 묶어서 풀었다.
Performance