이전 Coder's high 제출 문제다.
어려운 문제는 아니고 그냥 조건만 맞추면 되는 문제인데, 자꾸 조건을 중간에 빼먹어서 문제였다.
처음엔 그냥 월별, 요일별로 조건문에 때려넣어서 했는데 코드가 너무 안예뻐서... 그냥 다 상수처리해서 정리하였다.
#include <iostream> #include <string> using namespace std; int testcase; const int monthEnd[12] = {31,28,31,30,31,30,31,31,30,31,30,31}; const int monthBefore[12] = {31,31,28,31,30,31,30,31,31,30,31,30}; const string dowArr[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}; int main(){ cin>>testcase; while(testcase--){ int cur,m,d,dowIdx; string dow; cin>>m>>d>>dow; for(int i = 0;i<7;i++){ if(!dow.compare(dowArr[i])){ dowIdx = i; break; } } for(int i = 0; i < 7; i++){ cur = d-(dowIdx-i); cur = cur<1?monthBefore[m-1] + cur : (cur>monthEnd[m-1]?cur-monthEnd[m-1]:cur); printf("%d ",cur); } printf("\n"); } }
'Algorithm > Problems' 카테고리의 다른 글
백준 - 2800 괄호 제거 (1) | 2016.05.18 |
---|---|
백준 - 11583 인경호의 징검다리 (0) | 2016.05.12 |
백준 - 10219 Meats On The Grill (0) | 2016.05.09 |
더블릿 - 미로찾기/starship_maze (0) | 2016.05.09 |
백준 - 4781 사탕가게 (0) | 2016.05.06 |