자료구조 & 알고리즘/BOJ

[C++]백준 2단계 - 2753번 문제

ReBugs 2022. 11. 17.

먼저 이 코드를 보면 쉬울 것이다.

#include <iostream>
using namespace std;
int main()
{
int year = 20;
if (year % 4 == 0 && (true || true))cout << "1" << endl;
else cout << "0" << endl;
if (year % 4 == 0 && (true || false))cout << "1" << endl;
else cout << "0" << endl;
if (year % 4 == 0 && (false || true))cout << "1" << endl;
else cout << "0" << endl;
if (year % 4 == 0 && (false || false))cout << "1" << endl;
else cout << "0" << endl;
}

AND와 OR의 이해가 필요하다.
AND는 둘다 TRUE여야하고, OR은 둘중에 하나만 TRUE이면 TRUE를 뱉는다

여기까지 이해했다면 아래 코드는 답안인데 답안이 이해가 될 것이다.

#include <iostream>
using namespace std;
int main()
{
int year;
cin >> year;
if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0))cout << "1";
else cout << "0";
}

(year % 100 != 0 || year % 400 == 0)) 여기서 둘중에 하나가 FALSE여도 OR(||)은 TRUE를 뱉기 때문에 정상적으로 작동이 가능하다.

댓글