본문 바로가기

백준 문제풀이/조건문

백준 2753 C / 단계별로 풀어보기 - if문 3

 

안녕하세요.

이번에는 세 번째인 2753 번, 윤년 입니다.

 

링크는 여기입니다.

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

 

2753번: 윤년

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

www.acmicpc.net

윤년에 생일이면 4년마다 생일이라 너무 슬프겠네요.

 

문제를 보면, 4의 배수이지만, 100의 배수는 아니어야 하고, 근데 400의 배수면 윤년이다. 네요.

참 어렵습니다. 이런 걸 발견한 사람들은 참 대단하신 분들이네요.

 

코드를 짜보겠습니다.

 

#include <stdio.h>

int main()
{
	int year = 0;
	scanf("%d", &year);
	if (!(year % 400)) // 400의 배수?
		printf("1");
	else if (!(year % 100)) // 400의 배수는 아니고, 100의 배수일 때,
		printf("0");
	else if (!(year % 4)) // 400의 배수가 아니고 100의 배수가 아닐 때,
		printf("1");
	else
		printf("0");
	return 0;
}

 

// 는 주석을 달 때 쓰는 기호입니다. 여러 줄을 주석으로 달고 싶으면 /* */ 를 사용하시면 됩니다.

 

400의 배수인지 확인을 하고, 아니면 100의 배수인지 확인을 합니다.

그것도 아니면 이제 4의 배수인지 확인을 하면 되겠네요.

 

감사합니다.