Algorithms/백준

[백준] 2753번 '윤년' - Java

LEFT 2022. 9. 2. 17:19

<문제 제시>

<예시 입출력>


<문제 해결 과정>

윤년 예제는 프로그래밍을 처음 접할때나, 과제를 할 때 많이 보는 예제이다.

Scanner 클래스를 이용해 년도를 입력받고 1 또는 0을 출력하여 윤년을 판별할 수 있다.

이번 풀이에서는 Scanner 클래스 대신 BufferedReader를 사용하고자 한다.

% (나머지) 연산과 / (나눗셈) 연산, !=, || 논리연산 등을 적절히 써줘야하는 문제이다.


 

<전체코드>

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	
		int year = Integer.parseInt(br.readLine());
		
		if((year % 4) == 0) {
			if((year % 100) != 0 || year % 400 == 0) {
				System.out.println("1");
			}
			else System.out.println("0");
		}
		else System.out.println("0");
	}
}

BufferedReader로 읽은 한 줄의 문자를 int year 변수에 한번에 처리하였다.

if문 조건을 통해서 윤년을 판별해야했다.

먼저 4년주기로 윤년이 찾아오므로 4로 나눈 나머지가 0이게 되면 윤년이다.

다음 조건으로 100년마다는 윤년으로 치지않고, 400년마다는 윤년으로 친다.

그 조건 또한 != 와 || 연산을 이용해서 적용하였다.


문제링크)
https://www.acmicpc.net/problem/2753

 

2753번: 윤년

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

www.acmicpc.net