반응형
programmers.co.kr/learn/courses/30/lessons/12901
간단한 요일계산 문제였습니다.
풀이방법
1. 윤년이므로 2월은 29일입니다. 1년 366일인 해이죠. 각 달의 일 수를 반환해주는 함수를 만들어줍니다.
2. a이전 달까지의 일수 + b일 하게 된다면 1월 1일부터 지나온 총 일 수가 나옵니다. 이를 7로 나눈 나머지를 구한 결과를 구한 뒤 각 요일에 맞게 반환해주면 됩니다.
Code
#include <bits/stdc++.h>
using namespace std;
int getDay(int month){
if(month==1) return 31;
if(month==2) return 29;
if(month==3) return 31;
if(month==4) return 30;
if(month==5) return 31;
if(month==6) return 30;
if(month==7) return 31;
if(month==8) return 31;
if(month==9) return 30;
if(month==10) return 31;
if(month==11) return 30;
if(month==12) return 31;
}
string whichDay(int day){
if(day%7==1) return "FRI";
if(day%7==2) return "SAT";
if(day%7==3) return "SUN";
if(day%7==4) return "MON";
if(day%7==5) return "TUE";
if(day%7==6) return "WED";
if(day%7==0) return "THU";
}
string solution(int a, int b) {
string answer = "";
int day = 0;
for(int i = 1; i < a; i++){
day += getDay(i);
}
day += b;
return whichDay(day);
}
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - 백준(BOJ) 2979번 : 트럭 주차 (0) | 2021.03.12 |
---|---|
(C++) - 프로그래머스(연습문제) : 제일 작은 수 제거하기 (0) | 2021.03.05 |
(C++) - 백준(BOJ) 11586번 : 지영 공주님의 마법 거울 답 (0) | 2021.02.09 |
(C++) - 백준(BOJ) 19944번 : 뉴비의 기준은 뭘까? 답 (0) | 2021.02.07 |
(C++) - 백준(BOJ) 15726번 : 이칙연산 답 (0) | 2021.02.07 |