[프로그래머스/C++]Lv.1 - 2016년

YH J·2023년 6월 1일
0

프로그래머스

목록 보기
108/168

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/12901

내 풀이

day 배열과 month 배열을 미리 만들어 둔 뒤 a와 b에 맞춰서 일수를 계산하고 7로 나눈 나머지를 기반으로 day를 출력한다. ( 윤년이라 2월이 29일이다. )

내 코드

#include <string>
#include <vector>
#include <iostream>
using namespace std;

string solution(int a, int b) {
    string answer = "";
    
    vector<string> day = {"FRI","SAT","SUN","MON","TUE","WED","THU"};
    int month[12] = {31,29,31,30,31,30,31,31,30,31,30,31};
    int sum = 0;
    if(a > 1)
    {
        for(int i = 0; i < a - 1; i++)
        {
            sum += month[i];
        }
    }
    sum += (b - 1);
    sum %= 7;
    answer = day[sum];
    return answer;
}

다른 사람의 풀이

#include<iostream>
#include<string>
using namespace std;

string getDayName(int a,int b)
{
  int month[12] = {0,31,29,31,30,31,30,31,31,30,31,30};
  string date[7] = {"SUN","MON","TUE","WED","THU","FRI","SAT"};

  for(int i = 0; i < a; i++)
  {
    b += month[i];
  }  

    string answer= date[(b+4)%7];  

    return answer;
}

다른 사람의 풀이 해석

나는 1월 1일의 요일에 맞춰서 date 배열을 금요일부터 시작하게 했지만 보통 일요일부터 시작하므로 +4를 하였다.

profile
게임 개발자 지망생

0개의 댓글