2016년

NJW·2021년 8월 21일
0

코테

목록 보기
69/170

들어가는 말

2016년 a월 b일은 몇 요일일까를 맞추는 문제이다. 이때, 2월은 29일이라는 걸 주의해야 한다(!!!).

코드 설명

일단 2016년 달의 날자를 모두 month벡터에 넣어줬다. 1월부터 할 거기 때문에 앞에 0을 넣어 [0]에는 값이 없도록 했다.
다음은 요일을 벡터로 넣어줄 차례다. 이때, 1월 1일은 금요일이라는 점에 주목했다. 일주일은 총 7일이니까 7로 나누면 나머지가 0인 요일은 목요일, 1인 요일은 금요일, 2인 요일은 토요일일 거 아닌가. 그렇게 요일 벡터에 값을 넣어줄 때는 목요일부터 시작해서 넣어주었다.
요일을 구하는 계산은 간단하다. a월 이전의 날짜를 전부 더한 다음 b일의 날자를 더해서 그걸 7로 나눈 나머지가 가리키는 값이 그 요일이다.
다만, 2월이 29일이란 점을 잊어서는 안 된다. 28일 넣고 왜 안 되지??? 내가 이랬었기 때문...

코드

#include <string>
#include <vector>

using namespace std;

string solution(int a, int b) {
    string answer = "";
    vector<int> month = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30,31};
    vector<string> day = {"THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED"};
    int sum = 0;
    
    for(int i = 1; i < a; i++){
        sum = sum + month[i];
    }
    
    sum = sum + b;
    
    answer = day[sum%7];
    
    return answer;
}
profile
https://jiwonna52.tistory.com/

0개의 댓글