[C] 백준 2753번 : 윤년
2020. 5. 30. 04:14
년도가 주어졌을 때 윤년인지 아닌지를 판단하는 코드를 짜는 문제로, 문제는 아래와 같다.
위 문제를 해결하기 위해서는 if문을 활용해서 코드를 작성하면 되며 세가지 조건을 고려해야 한다.
1) 연도가 4의 배수일 때 윤년이다.
2) 연도가 100의 배수가 아닐 때 윤년이다.
3) 하지만 연도가 400의 배수일 때는 윤년이다.
따라서 다음과 같이 코드를 작성하면 해결된다.
#include <stdio.h>
int main(){
int year;
scanf("%d", &year);
//연도는 1보다 크거나 같고, 4000보다 작거나 같은 자연수이다.
if(1 <= year && year <= 4000){
//연도가 4의 배수이면서 100의 배수가 아닐 때 윤년이므로 1을 출력한다.
if(year%4==0 && year%100 !=0){
printf("1");
}
//하지만 연도가 400의 배수일 때도 윤년이므로 1을 출력한다.
else if(year%400 == 0){
printf("1");
}
//위의 조건들을 충족하지 못하면 윤년이 아니므로 0을 출력한다.
else {
printf("0");
}
}
else {
printf("ERROR");
}
}
처음에 코드를 작성했을 때, else if 의 조건을 걸지 않아서 2000을 입력했을 때 0이라는 결과값을 얻었다.
다시 문제를 확인해보고 400의 배수일 경우 윤년이라는 조건을 다시 추가하였더니 제대로 작동했다.
'Programming > BOJ' 카테고리의 다른 글
[C] 백준 2439번 : 별 찍기 - 2 (0) | 2020.06.02 |
---|---|
[C] 백준 10950번 : 정수를 입력받은 후 합 출력 (0) | 2020.06.01 |
[C] 백준 2884번 : 알람시계 맞추기 (0) | 2020.05.30 |
[C] 백준 2588번 : 세자리수 곱셈 (0) | 2020.05.30 |
[C] 백준 1008번 : A/B 연습 (0) | 2020.05.30 |