joonas   2년 전

윤년이 정해지는 기준을 헷갈릴 수 있게 정의하였습니다.

  • 서력기원 연수가 4로 나누어떨어지는 해는 우선 윤년으로 한다. (2004년, 2008년, …)
  • 100으로 나누어떨어지는 해는 평년으로 한다. (2100년, 2200년, …)
  • 400으로 나누어떨어지는 해는 다시 윤년으로 한다. (1600년, 2000년, …)

2100년이 평년인 것에서 "(4로 나누어떨어지면서) 100으로 나누어떨어지는" 으로 읽어야 한다는 것을 알았습니다.

문제에서 나열된 조건이 그 위의 조건을 포함한다는 것을 불필요하게 숨길 이유가 없어보입니다.

아래와 같이 바뀌면 좋겠습니다.

  • 서력기원 연수가 4로 나누어떨어지는 해는 우선 윤년으로 한다. (2004년, 2008년, …)
  • 4와 100으로 모두 나누어떨어지는 해는 평년으로 한다. (2100년, 2200년, …)
  • 4와 100, 400으로 모두 나누어떨어지는 해는 다시 윤년으로 한다. (1600년, 2000년, …)

아니면 2753번 문제를 링크로 거는 것도 나쁘지 않을 것 같습니다. (7343번 문제가 그렇게 되어있습니다)

qvixnh22   2년 전

100으로 나누어 떨어지는 해는 이미 4로 나누어 떨어짐을 함의합니다.

오히려 "4와 100으로 모두 나누어 떨어지는"의 표현은 불필요한 4로 나누어 떨어진다는 정보를 부연하는 것으로 가독성을 해칠 수 있습니다.

제시한 소스 코드의 경우 잘못 구현한 함수의 경우 조건문의 순서를 역으로 제시하는 것으로 중첩하지 않고 함수를 잘 구현할 수 있습니다. 

제시한 2753번 문제와 이 문제의 윤년이 정해지는 조건은 본질적으로 동일합니다. 결과만 동일한 것이 아닌 설명 자체가 동일합니다.

댓글을 작성하려면 로그인해야 합니다.