오늘의 목표
아침 코드카타
언리얼 멀티플레이 3, 4 복습
언리얼 멀티플레이 4, 5 예습
코드카타
[문제] 2016년
시간 내에 못 품...
[내 풀이]
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
char* solution(int a, int b) {
// 리턴할 값은 메모리를 동적 할당해주세요.
char* answer = (char*)malloc(4 * sizeof(char));
int answer_index = 0;
// 흐른 일수 계산 -> 7로 나눴을 때 나머지로 판단하면 될 듯
int month_days[12] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
char* days[7] = {"FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"};
int days_past = 0;
for (int i = 0; i < a; ++i)
{
days_past += month_days[i];
}
// 1월 2일부터 하루 지난걸로 카운팅하므로 -1 해줌
--days_past;
printf("days_past: %d\n", days_past);
printf("days_past % 7: %d\n", days_past % 7);
for(int i = 0; i < 4; ++i)
{
answer[i] = days[days_past%7][i];
printf("answer[i]: %c\n", answer[i]);
}
answer[4] = '\0';
return answer;
}
[개선점]
i 순환을 0~a로 돌면서 마지막에 해당하는 달의 전체 일수를 더해버리고 있었다. a-1로 바꾼 다음 b를 더해줘야 정확히 a월 b일의 지난 일수를 구할 수 있다.
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
char* solution(int a, int b) {
// 리턴할 값은 메모리를 동적 할당해주세요.
char* answer = (char*)malloc(4 * sizeof(char));
int answer_index = 0;
// 흐른 일수 계산 -> 7로 나눴을 때 나머지로 판단하면 될 듯
int month_days[12] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
char* days[7] = {"FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"};
int days_past = 0;
for (int i = 0; i < a - 1; ++i)
{
days_past += month_days[i];
}
// 1월 2일부터 하루 지난걸로 카운팅하므로 -1 해줌
days_past += b - 1;
printf("days_past: %d\n", days_past);
printf("days_past % 7: %d\n", days_past % 7);
for(int i = 0; i < 4; ++i)
{
answer[i] = days[days_past%7][i];
printf("answer[i]: %c\n", answer[i]);
}
answer[4] = '\0';
return answer;
}'Unreal5 공부 > TIL' 카테고리의 다른 글
| 2026/06/16 TIL (0) | 2026.06.16 |
|---|---|
| 2026/06/15 TIL (0) | 2026.06.15 |
| 2026/06/10 TIL (0) | 2026.06.10 |
| 2026/06/05 TIL (0) | 2026.06.05 |
| 2026/06/04 TIL (0) | 2026.06.05 |