반응형
https://programmers.co.kr/learn/courses/30/lessons/12901
문제 접근법
- 다른 년도를 신경 쓸 필요없이 2016년만 신경쓰면 되는 문제입니다.
- 요일에 대한 string 배열(저는 answer로 표현하겠습니다)과 1월~12월에 해당하는 일수에 대한 int 배열을 준비합니다(저는 month로 표현하겠습니다).
- for문을 통해 a월 이전까지의 month배열값을 더해줍니다(이 값을 num이라 표현하겠습니다).
- num값과 b를 더하고 -1을 한값을 나머지 연산을 합니다(어떤 요일인지를 구하기 위하여)
- -1을 한 이유는 answer 배열의 index가 0부터 시작하기 때문입니다.
- 해당 값을 answer배열의 index로 주고 return 하면 됩니다.
아래는 코드입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#include <string>
#include <vector>
using namespace std;
string solution(int a, int b) {
string answer[] = {"FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"};
int month[] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int count = 0;
for(int i = 0; i < a - 1; i++)
count += month[i];
count += b - 1;
count %= 7;
return answer[count];
}
|
cs |
반응형
'프로그래머스 문제풀이 > LEVEL 1' 카테고리의 다른 글
[프로그래머스 / Level 1] 나누어 떨어지는 숫자 배열 (C++) (0) | 2021.11.17 |
---|---|
[프로그래머스 / Level 1] 같은 숫자는 싫어 (C++) (0) | 2021.11.17 |
[프로그래머스 / Level 1] 가운데 글자 가져오기 (C++) (0) | 2021.11.17 |
[프로그래머스 / Level 1] 크레인 인형뽑기 게임 (0) | 2021.10.27 |
[프로그래머스 / Level 1] 체육복 (0) | 2021.06.22 |