컴퓨터 하는 라따뚜이

[백준] 2753 자바 : 윤년 본문

백준 문제풀이/02_if문

[백준] 2753 자바 : 윤년

Ratatouille 2021. 6. 4. 14:26

[백준] 2753 자바 : 윤년

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

 

2753번: 윤년

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

www.acmicpc.net


문제.

입력된 연도가 윤년인지 아닌지 판별해 윤년이면 1, 아니면 0을 출력하면 된다.  


풀이.

조건문을 처음 접할 때 많이 등장하는 문제 중 하나다. 논리연산자를 사용해 조건식을 구현할 수 있는지에 대해 묻는 문제다. 

문제를 잘 읽어보면 "윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다." 라고 명시되어있다.

4의 배수이면서!! 100의 배수가 아닐 때이기 때문에 앞의 두 조건은 &&(and) 연산자로 묶어주어야 한다. 그리고 앞의 조건과 관계없이 400의 배수면 무조건 윤년이기 때문에 || (or) 연산자로 따로 구분해주면 된다.

if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)

코드.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int year = sc.nextInt();
        if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
            System.out.println(1);
        } else {
            System.out.println(0);
        }
    }
}

난이도 : ◐○○○○○○○○○

지극히 주관적인 생각

'백준 문제풀이 > 02_if문' 카테고리의 다른 글

[백준] 9498 자바 : 시험 성적  (0) 2021.04.04
[백준] 1330 자바 : 두 수 비교하기  (0) 2021.04.04