728x90
반응형

백준알고리즘

- Bronze 4 -

 #2753. 윤년 by JAVA and node.js 

 


 

문제

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

 


 

접근 방법

윤년의 정의를 잘 읽고 이해하면 된다.

연도가 4의 배수이면서 100의 배수가 아닐 때 또는 400의 배수일 때

 

여기서 헷갈릴 수 있는 것이 '400의 배수는 곧 100의 배수이기도 한데, 그러면 4의 배수이면서 100의 배수가 아닐 때와 충돌되지 않나?'이다.

4의 배수이면서 100의 배수가 아닐 때 : 4, 8, 12, 16, ..., 96, 100, 104, ...

400의 배수일 때 : 400, 800, 1600, ...

 

4의 배수이면서 100의 배수가 아닐 때와 400의 배수일 때의 집합은 배반집합이므로

"또는" 조건에 의해 빨간색(취소선 제외)과 파란색의 합집합을 구하면 된다..

 

즉, 헷갈릴 필요 없이 입력된 값이 두 조건 중 하나라도 맞으면 1을 반환하면 된다.

 


 

풀이

▶ JAVA

import java.util.*;

public class Main {
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        int year = scan.nextInt();
        scan.close();

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

 

▶ node.js

var fs = require('fs');
var year = fs.readFileSync('/dev/stdin').toString().trim();

if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)){
    console.log(1);
} else {
    console.log(0);
}

 


 

결과

 


 

 

 

 

 

End.

heisely's 괴발개발 개발일지

 

728x90
반응형

+ Recent posts