husk
65
2020-12-25 23:22:18
2
221

백준 1924, 요일 구하는 알고리즘 질문입니다.


#include <iostream>
using namespace std;
int main(){
int month[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
string day[7] = {"MON", "TUE", "WEN", "THU", "FRI", "SAT", "SUN"};
int M,D;
int count, dayCount;
cin >> M >> D;

if(M<1 || M>12 || D<1 || D>31)
return 0;

count += D;
for(int i = 1; i < M; i++){ //2월부터
count += month[i-1];
}
dayCount = count % 7;
cout << day[dayCount-1];

return 0;
}


다른 1 월 1일이 월요일이라 배열 주소값 구하는 것처럼 [ 날짜 + (월)*(월마다의 날짜)  ] 를 했는데

다른 날짜들은 다 잘 나오는데 이상하게 9월 2일을 입력하면 바로 종료가 되어버립니다.

계속 고민을 해봐도 9월 2일에 대해서 특이점을 못 찾겠는데 혹시 아시는 분 계실까요..?

0
  • 답변 2

  • traces
    75
    2020-12-25 23:34:05

    dayCount가 count 에서 7 나누었을때 나오는 나머지니까 0이 나올수도 있잖아요~

    그럼 dayCount-1을 하면 어떻게 될까요?

  • husk
    65
    2020-12-25 23:39:28

    아 0일때를 고려 못했네요 다시 시도해봐야겠습니다. 감사합니다

  • 로그인을 하시면 답변을 등록할 수 있습니다.