반응형
문제
- 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오.
윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다.
예를 들어, 2012년은 4의 배수이면서 100의 배수가 아니라서 윤년이다. 1900년은 100의 배수이고 400의 배수는 아니기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다.
입력
- 첫째 줄에 연도가 주어진다. 연도는 1보다 크거나 같고, 4000보다 작거나 같은 자연수이다.
출력
- 첫째 줄에 윤년이면 1, 아니면 0을 출력한다.
예제입력 1
2000
예제출력 1
1
예제입력 2
1999
예제출력 2
0
문제풀이
- 윤년이 언제인지 알아야 하는문제
- 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다.
- 그래서 조건문에 먼저 4의 배수이면서 100의 배수가 아닐때의 조건식과 또는 400의 배수일때의 숫자를 찾아서 마으면 1 아니면 0을 출력
- 참고로 윤년을 어떻게 찾아야 할지 몰라서 다른 사람의 코드를 찾아봤음
// 백준 2753번
// 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오.
// 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다.
// 예를 들어, 2012년은 4의 배수이면서 100의 배수가 아니라서 윤년이다.
// 1900년은 100의 배수이고 400의 배수는 아니기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다.
//입력값
const fs = require("fs");
const file = process.platform === "linux" ? "dev/stdin" : "./text.txt";
const input = fs.readFileSync(file).toString().trim().split(" ");
const a = Number(input[0]);
// 100의 배수인지 알기위해 변수 b를 두고 아래 if 문에서 b가 0이되는지 확인
const b = a % 100;
// 400의 배수인지 확인하기 위해 a를 400으로 나눈 나머지가 0인 것을 확인하기 위한 변수
const c = a % 400;
// a%4 === 0 && b !== 0 는 4의 배수이면서 100의 배수가 아닐때
// 또는 c === 0 이면 400의 배수일때
if ((a % 4 === 0 && b !== 0) || c === 0) {
console.log("1");
} else {
console.log("0");
}
'Algorithm_javascript > 2. 조건문' 카테고리의 다른 글
백준 2525번 오븐시계(javascript,node.js) (0) | 2023.05.11 |
---|---|
백준 2884번 알람시계 (javascript,node.js) (0) | 2023.05.11 |
백준 14681번 사분면 고르기 (javascript,node.js #) 런타임 에러 (EACCES) 주의 (0) | 2023.05.11 |
백준 9498번 시험성적 (javascript,node.js) (0) | 2023.05.10 |
백준 1330번 두 수 비교하기 (javascript,node.js) (0) | 2023.05.10 |