문제

백준 2753번 윤년

해결 과정

간단한 조건 문제이다. 입력받은 연도가 윤년인지 아닌지를 판별하여 출력하면 된다.

이때 연도의 범위가 이므로 int 자료형으로 충분하다.

예시 답안

풀이 1 - 조건문

문제에 제시한 대로 가 4의 배수이면서 100의 배수가 아니거나, 400의 배수이면 윤년이다. 이를 조건문으로 표현하면 된다.

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

풀이 2 - 삼항 연산자

삼항 연산자를 사용하면 더 간단하게 표현할 수 있다.

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

문제 풀이 팁

Tip

  • 조건문을 사용할 때 elseif에 대한 조건을 제외한 나머지 조건을 검사한다. 이를 이용하면 조건문을 간단하게 표현할 수 있다.
  • 삼항 연산자는 condition ? true : false의 형태를 가진다. condition이 참이면 true의 결과가, 거짓이면 false의 결과가 반환된다.

추가 학습 자료

소스 코드

Hiyabye - 02753.cpp