C,C++/코딩테스트
프로그래머스 1단계 - 2016년
권멋져
2022. 5. 28. 20:15
#include <string>
#include <vector>
using namespace std;
string solution(int a, int b) {
string answer = "";
int day = 0;
for(int i = 1; i < a ; i ++)
{
if(i<8)
{
if(i%2 == 0)
{
if(i == 2) day += 29;
else day += 30;
}
else
day += 31;
}
else
{
if(i%2 == 0)
day += 31;
else
day += 30;
}
}
day += b;
int n = 0;
while(1)
{
int tmp = 1 + n*7;
if(tmp > day)
{
int ntmp = 1 + (n-1)*7;
day = day - ntmp;
switch(day)
{
case 0:
answer = "FRI";
break;
case 1:
answer = "SAT";
break;
case 2:
answer = "SUN";
break;
case 3:
answer = "MON";
break;
case 4:
answer = "TUE";
break;
case 5:
answer = "WED";
break;
case 6:
answer = "THU";
break;
}
break;
}
else
n++;
}
return answer;
}
https://programmers.co.kr/learn/courses/30/lessons/12901?language=cpp
코딩테스트 연습 - 2016년
2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까
programmers.co.kr
- 문제 파악
2016년 1월 1일은 금요일이다. 2016년은 윤년일 때, 2016년 a월 b일의 요일을 구하여라.
- 정답
1월 1일은 금요일을 기준으로 일주일 마다 요일이 같게된다.
1월 1일부터 n주 후에 a월 b일과 가장 가까운 날부터 a월 b일까지 세면 된다.