문제
문제: 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오.
윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다.
예를 들어, 2012년은 4의 배수이면서 100의 배수가 아니라서 윤년이다. 1900년은 100의 배수이고 400의 배수는 아니기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다.
입력: 첫째 줄에 연도가 주어진다. 연도는 1보다 크거나 같고, 4000보다 작거나 같은 자연수이다.
출력: 첫째 줄에 윤년이면 1, 아니면 0을 출력한다.
예제 입력: 2000 또는 1999
예제 출력: 1 또는 0
풀이
const fs = require('fs');
const a = parseInt(fs.readFileSync('/dev/stdin').toString().trim());
if(a%4===0 && a%100!==0 || a%400===0){
console.log("1");
}else{
console.log("0");
}
풀이 해석
1. 윤년 판별 조건
- 조건1: a%4===0 && a%100!==0
- 4의 배수이면서 100의 배수가 아니다.
- 조건2: a%400===0
- 400의 배수이다.
- 둘 중 하나라도 참이면 윤년으로 console.log("1")을 수행한다.
더 알아보기
1. 삼항연산자로 풀어볼 수 있다.
console.log((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0 ? 1 : 0);
- 삼항연산자를 사용하면 코드가 더 짧아지고 간결해진다.
- 복잡한 조건문이 아닌 단순한 조건문이라면 삼항 연산자를 사용해도 가독성이 좋다.
'알고리즘 Node.js' 카테고리의 다른 글
백준 2884문제. 알람 시계 (0) | 2025.02.27 |
---|---|
백준 14681문제. 사분면 고르기 (0) | 2025.02.27 |
백준 9498문제. 시험 성적 (0) | 2025.02.26 |
백준 1330문제. 두 수 비교하기(2단계시작) (0) | 2025.02.25 |
백준 10172문제. 개(1단계 완료) (0) | 2025.02.25 |