728x90
▶문제 : 코딩 테스트 연습 - 2016년 | 프로그래머스 (programmers.co.kr)
▶코드 작성
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
char *solution(int a, int b)
{
// 리턴할 값은 메모리를 동적 할당해주세요.
char *answer = (char *)malloc(4);
char week[7][4] = {"THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED"};
//1월 1일이 금요일이므로 전체일수를 7로 나눈 나머지가 1이 금요일이 되어야 함
int day[12] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int total_Day = 0;
for (int i = 0; i < a - 1; i++)//a월을 제외한 일수 더하기
{
total_Day += day[i];
}
total_Day += b;//요일을 구하기 위해 b일까지 더해준다
strcpy(answer, week[total_Day % 7]);//전체일수를 7로 나눈 나머지가 그 요일을 가리킴
return answer;
}
▶해석
week 배열을 1월 1일이 금요일인 기준에 맞추어 요일을 지정하였다. 반복문으로 a월을 제외한 나머지 일수를 total_Day에 더했다. 마지막으로 b일까지 더해서 7로 나눈 나머지가 해당 요일을 가리킨다.
728x90
'프로그래머스 > C' 카테고리의 다른 글
프로그래머스 Level 1 : 가운데 글자 가져오기 C언어 (0) | 2021.11.29 |
---|---|
프로그래머스 Level 1 : 나머지가 1이 되는 수 찾기 C언어 (0) | 2021.11.29 |
프로그래머스 Level 1 : 두 개 뽑아서 더하기 C언어 (2) | 2021.11.28 |
프로그래머스 Level 1 : 최소직사각형 C언어 (0) | 2021.11.28 |
프로그래머스 Level 1 : 수박수박수박수박수박수? C언어 (0) | 2021.11.28 |
댓글