본문 바로가기
프로그래밍/프로그래머스

C++ 2016년(프로그래머스)

by devsu 2020. 5. 31.

프로그래머스_2016년

https://programmers.co.kr/

 

달력계산

문제 해석

 

이 문제를 풀기위해 이해해야 할 내용은 다음과 같습니다.

 

목표

해당하는 날짜의 요일 출력

방법

1. 2016년은 윤년

2. 실제로 있는날만 테스트

 

결과

해당하는 날짜의 요일 출력

 

통과한 코드

#include <stdlib.h>
#include <string.h>
char* solution(int a, int b) {
    // 리턴할 값은 메모리를 동적 할당해주세요.
    char* answer = (char*)malloc(4);
    memset(answer, 0, 4);
    int months[12] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
    int date = 0;
    for (int i = 0; i < a-1; i++)
    {
        date += months[i];
    }
    date += b;
    switch (date%7)
    {
    case 1:
        strcpy(answer, "FRI");
        return answer;
    case 2:
        strcpy(answer, "SAT");
        return answer;
    case 3:
        strcpy(answer, "SUN");
        return answer;
    case 4:
        strcpy(answer, "MON");
        return answer;
    case 5:
        strcpy(answer, "TUE");
        return answer;
    case 6:
        strcpy(answer, "WED");
        return answer;
    case 0:
        strcpy(answer, "THU");
        return answer;
    default:
        break;
    }

    return answer;
}

이전 월까지 월별로 날짜를 더해준 후 해당 월의 날짜를 더해준다

금요일이 1월1일 이므로 switch문으로 확인하여 출력.