티스토리 뷰

반응형

2016년의 a월 b일은 무슨 요일인지 구하는 문제

 


문제의 조건

 

1. 월 a, 일 b 가 매개변수로 주어진다. 

 

2. 2016년 1월 1일은 금요일이다. 

 

3. 이 때 2016년 a월 b일은 무슨 요일인지 구하기 

 


#include <string>
#include <vector>

using namespace std;

string solution(int a, int b) {
    //1/1이 금요일부터 시작하는데 1%7=1 이다.
    //따라서 b%7=0 일 땐 목요일이다. 
    //그래서 목요일을 인덱스 0번으로 두고 시작 
    vector<string> week({"THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED"});
    vector<int> daysInMonth({31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31});
    
    //1/1부터 흐른 날짜 구하기 -> 반복문으로 a월 앞 달까지만 더한 후
    int days = 0;
    for (int i = 0; a - 1 > i; i++)
        days += daysInMonth[i];
    
    //반복문 빠져나와서 남은 날짜 더하기 
    days += b;
    
    //요일을 구하려면 날짜를 7로 나눈 나머지를 이용
    int index = days % 7;
    
    return week[index];
}

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함