[BOJ] #2753 - 윤년

👻 윤년

👉🏻 문제 보러가기 👈🏻


🌱 문제

연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오.

윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다.

예를 들어, 2012년은 4의 배수이면서 100의 배수가 아니라서 윤년이다. 1900년은 100의 배수이고 400의 배수는 아니기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다.

  • 시간 제한 : 1초
  • 메모리 제한 : 128 MB

🌱 입력

첫째 줄에 연도가 주어진다., 연도는 1보다 크고나 같고, 4000보다 작거나 같은 자연수이다.


🌱 출력

첫째 줄에 윤년이면 1, 아니면 0을 출력한다.


🌱 예제


🪐 입출력 1

  • 입력
    2000
    
  • 출력
    1
    

🪐 입출력 2

  • 입력
    1999
    
  • 출력
    0
    

👻 풀이

#include <iostream>
using namespace std;
int main()
{
    ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    // 윤년
    int y = 0;
    int ret = 0;
    cin >> y;
    if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0) ret = 1;
    cout << ret << '\n';
    return 0;
}
  • 시간 : 0 ms
  • 메모리 : 2020 KB

👻 글을 마치며

문제 자체는 쉬웠는데 조건식을 설정하는 것에서 시간이 약간 소요된 것 같다. 고려해야 할 조건이 많아서 자칫하면 많은 조건문이 나올 수 있었는데 잘 정리가 된 것 같다.


소스코드 보러가기

Categories:

Updated:

Leave a comment