Post

[프로그래머스] 2016년 / C++

문제


문제를 보시려면 링크를 클릭해주세요.


풀이


  1. 윤년2월달이 29일까지 있는 해임을 주의하여 1~12월 까지 마지막 일수를 month 배열에 담아줍니다.

  2. 1월 1일이 금요일이므로 day 배열 1번째 인덱스 값을 금요일로 저장했습니다.

  3. 입력받은 월의 전월(a-1)까지의 일수를 모두 더한 후, 입력받은 일(b)까지 더하여 총 일수를 구합니다.

  4. 총 일수를 7로 나눈 나머지값을 day 배열 인덱스에 넣으면 무슨 요일인지 알 수 있습니다.


소스 코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <string>
using namespace std;

string solution(int a, int b) {

    int month[] = {31,29,31,30,31,30,31,31,30,31,30,31};
    string day[] = {"THU","FRI","SAT","SUN","MON","TUE","WED"};
    
    int sum = b;
    
    for(int i=0; i<a-1; i++){
        sum += month[i];
    }

    return day[sum%7];
}



This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.