#include <string>
#include <vector>
using namespace std;
string solution(int a, int b) {
string answer = "";
int month[12] = { 31,29,31,30,31,30,31,31,30,31,30,31 };
string week[7] = { "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT" };
for(int i = 0; i < a - 1; i++)
{
b += month[i];
}
answer = week[(b + 4) % 7];
return answer;
}
풀이
1. 12월까지의 날짜와 각 요일을 저장한다. 요일은 일요일부터 저장한다. 7로 나눠질때 0으로 떨어지는 것을 이용.
2. 배열이 0부터 계산하여 들어오는 a에 -1해준다.
3. b에 모든 일 수을 넣어준다.
4. 금요일이기때문에 +4을 하여 계산해준다. -4가 아닌 이유는 week기준으로 더해줘야하기 때문
5. 7로 나머지 계산하게 되면 요일이 나온다.
년도별 계산은 유용하게 쓰이므로 잘 알아두면 좋은 것 같다.
'Algorithm > Programmers' 카테고리의 다른 글
[C++] 프로그래머스 미로 탈출 명령어 (1) | 2024.01.03 |
---|---|
[C++] 프로그래머스 거리두기 확인하기 (0) | 2023.12.29 |
[C++] 프로그래머스 정수삼각형 (0) | 2021.12.31 |
[C++] 프로그래머스 게임 맵 최단거리 (0) | 2021.12.30 |
[C++] 프로그래머스 행렬 테두리 회전하기 (0) | 2021.11.17 |