[BOJ] 2753 윤년 (JAVA)

joyful·2021년 4월 6일

Algorithm

목록 보기
14/65

✅ 문제

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

✅ 입력

첫째 줄에 연도가 주어진다. 연도는 1보다 크거나 같고, 4000보다 작거나 같은 자연수이다.

✅ 출력

첫째 줄에 윤년이면 1, 아니면 0을 출력한다.

✅ 예제 1

▼ 입력

2000

▼ 출력

1

✅ 예제 2

▼ 입력

1999

▼ 출력

0

풀이

  • Scanner 이용하여 숫자 입력 받기
  • if-else문 사용하여 조건 만족시 문자열 출력
  • 배수 → 나눴을 때 나머지가 0인 경우
  • 논리연산자 이용하여 조건식 판별

🔎 논리 연산자

구분피연산자1연산자피연산자2결과설명
AND
(논리곱)
true
true
false
false
&&
또는
&
true
false
true
false
true
false
false
false
피연산자 모두가 true일 경우에만 true
OR
(논리합)
true
true
false
false
∥
또는
|
true
false
true
false
true
false
false
false
피연산자 하나만 true여도 true
XOR
(배타적논리합)
true
true
false
false
^true
false
true
false
false
true
true
false
피연산자가 하나는 true,
다른 하나는 false일 경우에만 true
NOT
(논리부정)
!true
false
false
true
피연산자의 논리값 변경

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
    		int year = scanner.nextInt();
    	
    		if((year%4==0 && year%100!=0) || year%400==0)
    			System.out.println("1");
    		else
    			System.out.println("0");
    	
    		scanner.close();
	}
}
profile
기쁘게 코딩하고 싶은 백엔드 개발자

0개의 댓글