문제 출처:https://programmers.co.kr/learn/courses/30/lessons/12901
문제 분석
처음에는 calendar library를 가져올까 싶었지만 그냥 간단하게 구현해봤습니다.
2016년 2월은 윤년이기 때문에 29일까지 있으며, 7월 8월이 31일까지 있다는 것을 유념하고 제작했습니다.
코드는 다음과 같습니다:
#include <string>
#include <vector>
using namespace std;
enum weekend{SUN,MON,TUE,WED,THU,FRI,SAT} ;
string weekend_str[7] = {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"} ;
#define SETTING FRI
string solution(int a, int b) {
int days = b - 1;
for(int i = 1 ; i < a ; i++){
switch(i){
case 2 : days += 29 ; break ;
case 1 : case 3 : case 5 : case 7 : case 8 : case 10 : case 12 :
days += 31 ; break ;
default : days += 30 ; break ;
}
}
return weekend_str[(days + SETTING) % 7] ;
}
해당 문제는 Github에서도 보실 수 있습니다:
https://github.com/gurcks8989/CodingTest/blob/master/Programmers/P12901_2016.cpp
훈수 및 조언은 언제든 환영입니다.