728x90
반응형

문제 : https://codeup.kr/problem.php?id=1214

 

이 달은 며칠까지 있을까?

철수와 영희는 한 사람이 특정 월(month)을 지목하면 나머지 사람이 그 달의 마지막 날이 며칠인지 알아맞히는 게임을 하였다. 두 사람 모두 처음엔 서툴렀지만 게임을 계속하다 보니 금방 익숙해

codeup.kr

 

문제 설명

철수와 영희는 한 사람이 특정 월(month)을 지목하면 나머지 사람이 그 달의 마지막 날이 며칠인지 알아맞히는 게임을 하였다. 두 사람 모두 처음엔 서툴렀지만 게임을 계속하다 보니 금방 익숙해졌다. 그래서 게임의 규칙을 조금 어렵게 바꿔 연도와 월을 말하면 그 달의 마지막 날이 며칠인지 알아맞히기로 하였다.

 

이 규칙이 어려운 이유는 2월이 윤달이 있기 때문이다.

2월이 29일인 해를 윤년이라고 하는데, 윤년의 판단은 아래 두 조건 중 하나만 만족하면 된다.

 

- 조건 1 : 400의 배수인 해는 모두 윤년이다.

- 조건 2 : 4의 배수인 해들 중 100의 배수가 아닌 해들은 모두 윤년이다.

 

연도와 월을 알고 있을 때 그 달의 마지막 날을 구하는 프로그램을 작성하시오.

 

<참고> 월별 마지막 날

1월

2월

3월

4월

5월

6월

7월

8월

9월

10월

11월

12월

31

28/29

31

30

31

30

31

31

30

31

30

31

[그림1] 입 출력 형식 및 예제, 도움말

 

 

#include <stdio.h>

int main(){
	int m,n;
	scanf("%d %d",&m,&n);
	if(m%4==0 && m%100!=0|| m%400==0) {

		if(n==2){
			printf("29");
		}
		else if(n%2==0){
			printf("31");
		}
		else if(n%2!=0){
			printf("30");
		}
	}
	else
		if(n==2){
			printf("28");
		}
		else if(n==1){
			printf("31");
		}
		else if(n%2==0){
			printf("31");
		}
		else if(n%2!=0){
			printf("30");
		}
	return 0;
}
728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기