본문 바로가기

Coding Tests/백준 온라인

(C언어)백준온라인 2753번

조건문 part

<오답>

#include<stdio.h>
int main(void)
{
	int Y;
	scanf("%d", &Y);
	if ((Y % 4 == 0) && (Y % 100 != 0))
		printf("%d", 1);
	if ((Y % 4 == 0) && (Y % 400 == 0))
		printf("%d", 1);
	if (Y % 4 != 0)
		printf("%d", 0);
	return 0;
}

지문 상의 조건을 쪼개어 구성하였는데, 대표적인 예외 숫자 하나를 대자면, 1900이라는 숫자이고 아무 출력 값이 나오지 않는다. 그러므로 틀린 코드이다.

 

<정답 코드>

#include<stdio.h>
int main(void)
{
	int Y;
	scanf("%d", &Y);
	if ((Y % 4 == 0) && (Y % 100 != 0)||(Y % 4 == 0) && (Y % 400 == 0))
		printf("%d", 1);
	else
			printf("0");
	return 0;
}

문제의 조건을 한 문장에 다 담았고 예외의 경우가 존재하지 않아, 출력이 정상적으로 됨을 볼 수 있었다.