제주 탈출 일지

[C++] 프로그래머스 레벨 1 - 2016년 본문

코딩 테스트

[C++] 프로그래머스 레벨 1 - 2016년

귀건 2020. 10. 27. 03:23
728x90
반응형

programmers.co.kr/learn/courses/30/lessons/12901?language=cpp

 

코딩테스트 연습 - 2016년

2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까

programmers.co.kr

 

2016년은 윤년이다.

4로 나누어떨어지면 윤년.

4로 나누어떨어져도 100으로 떨어지면 평년,

4로 나누어떨어지고, 100으로 나누어 떨어지면서, 400으로 나누어떨어지면 윤년이다.

 

날짜 계산만 잘 하고, b는 금요일부터 시작했기 때문에 4를 더해주었다. week 벡터에는 0번 시작이 SUN이기 떄문에

 

#include <string>
#include <vector>
#include <map>

using namespace std;

string solution(int a, int b) {
    string answer = "";
    int day = 0;
    
    map<int, int> year;
    year[1] = 31;
    year[2] = 29;
    year[3] = 31;
    year[4] = 30;
    year[5] = 31;
    year[6] = 30;
    year[7] = 31;
    year[8] = 31;
    year[9] = 30;
    year[10] = 31;
    year[11] = 30;
    year[12] = 31;

    vector<string> week = {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"};
    
    for(int i = 1; i < a ; i++){
        day += year[i];
    }
    day += b + 4;
    
    answer = week[day%7];
    
    return answer;
}
728x90
반응형
Comments