먼저 이 코드를 보면 쉬울 것이다.
#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를 뱉기 때문에 정상적으로 작동이 가능하다.
'자료구조 & 알고리즘 > BOJ' 카테고리의 다른 글
[C++] 백준 2단계 - 14681번 문제 (0) | 2023.03.19 |
---|---|
[C++] 백준 1단계 - 11382번 문제 (0) | 2023.03.19 |
[C++]백준 2단계 - 9498번 문제 (0) | 2022.11.17 |
[C++]백준 2단계 - 1330번 문제 (0) | 2022.11.17 |
[C++]백준 1단계 - 10171번, 10172번, 25083번 문제 (0) | 2022.11.17 |