https://programmers.co.kr/learn/courses/30/lessons/12901?language=cpp
주어진 날찌의 요일을 반환하는 문제.
일, 월, 화 ....., 토요일과 월별로 최대 일수를 배열에 저장한 후에, 1월 1일로부터 며칠이 지났는지 변환하여 월, 일을 일수로 바꾼 후에, 7로 나눈 나머지가 요일이 되므로 이를 출력한다. 이때 1월 1일이 금요일인걸 고려해야한다.
#include <string>
using namespace std;
string solution(int a, int b) {
string answer[7] = {"SUN","MON","TUE","WED","THU","FRI","SAT"};
int monthDay[12] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int start = 5 + b - 1;
for (int i = 0; i < a-1; ++i)
start += monthDay[i];
return answer[start % 7];
}
'coding_test > programmers' 카테고리의 다른 글
lv1 / 음양 더하기 / C++ (0) | 2021.12.20 |
---|---|
lv1 / 하샤드 수 / C++ (0) | 2021.12.20 |
lv1 / K번째 수 / C++ (0) | 2021.12.20 |
lv1 / 없는 숫자 더하기 / C, C++ (0) | 2021.11.03 |
lv1 / 수박수박수박수박수박수? / C (0) | 2021.10.12 |