[programmers][알고리즘][level2] 2016년
2016년 1월 1일은 금요일입니다. 2016년 A월 B일은 무슨 요일일까요? 두 수 A,B를 입력받아 A월 B일이 무슨 요일인지 출력하는 getDayName 함수를 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각
SUN,MON,TUE,WED,THU,FRI,SAT
를 출력해주면 됩니다. 예를 들어 A=5, B=24가 입력된다면 5월 24일은 화요일이므로 TUE를 반환하면 됩니다.
#include<iostream>
#include<string>
using namespace std;
string getName(int day)
{
switch(day)
{
case 3: return "SUN";
case 4: return "MON";
case 5: return "TUE";
case 6: return "WED";
case 0: return "THU";
case 1: return "FRI";
case 2: return "SAT";
}
return "";
}
string getDayName(int a,int b)
{
if ( (a>12) || (b>31) ) return "";
string answer= "";
int day = 0;
int month[12] = {31,29,31,30,31,30,31,31,30,31,30,31};
for ( int i = 0; i < a-1; ++i ) day += month[i];
day += b;
answer = getName(day%7);
return answer;
}
int main()
{
int a=5,b=24;
//아래는 테스트 출력을 위한 코드입니다.
cout<<getDayName(a,b);
}
나웅태 님의 풀이
#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;
}
int main()
{
int a=5,b=24;
//아래는 테스트 출력을 위한 코드입니다.
cout<<getDayName(a,b);
}