평년과 윤년 구하기

Maru·2023년 6월 17일
1

아래 문제는 네이버 부스트캠프 8기 코딩테스트 유형으로 제공된 문제입니다.

Q. 주어진 년도가 평년이면 0을, 윤년이면 1을 return하는 함수를 작성하시오

풀이

아래 그림을 참고하면 더 이해가 쉽다.

그림 출처

코드

int foo(int year){
	if((year % 4 != 0 || year % 100 == 0) && year % 400 != 0)
    	return 0;
    else
    	return 1;
 }

이 문제는 평년 기준으로 생각하기보다 윤년을 기준으로 생각하는 것이 더 이해하기 쉽다.

윤년은

  • 4의 배수 중
  • 100의 배수를 제외
  • 400의 배수는 포함

으로 나타 낼 수 있고, 윤년을 제외하면 모두 평년이다.

그러므로 평년이 되는 조건은

  • 4로 나누어 떨어지지 않음
  • 100의 배수
  • 400의 배수가 아님

으로 단순하게 나타낼 수 있다.

무조건 400의 배수가 아니어야하므로 && (year % 400 != 0) 조건은 AND로 표현했고,
나머지 두 조건 (4의 배수가 아니거나, 100의 배수임)은 ||으로 포현했다.
year % 4 != 0 || year % 100 == 100

profile
함께 일하고 싶은 개발자

0개의 댓글