fork download
  1. #ifndef _CRT_SECURE_NO_WARNINGS // 정의되어 있지 않으면,
  2. #define _CRT_SECURE_NO_WARNINGS // 지금 정의
  3. #endif
  4. //20161204 최서온, (2019년 한정)월과 일을 입력받아 무슨 요일인지 구한다.
  5. #include <stdio.h>
  6. int find_initial(int month);
  7. int main(void) {
  8. int month, max_day, initial_day;
  9. int day[31]; //한 달의 최대 일 수인 31개로 방을 만든다
  10. while (scanf("%d %d", &month, &max_day) != EOF) { //몇월 며칠인지 입력 받는다
  11. initial_day = find_initial(month);
  12. day[0] = initial_day; //월 별 1일의 요일은 미리 지정
  13. for (int j = 1; j < max_day; j++) { //구하는 날짜(며칠)까지 요일을 반복해서 입력한다
  14. day[j] = (day[j-1] + 1)%7;
  15. }
  16. int find_day = max_day - 1;
  17. int k = day[find_day];
  18. switch (k) {
  19. case 0: printf("SUN");
  20. break;
  21. case 1: printf("MON");
  22. break;
  23. case 2: printf("TUE");
  24. break;
  25. case 3: printf("WED");
  26. break;
  27. case 4: printf("THU");
  28. break;
  29. case 5: printf("FRI");
  30. break;
  31. case 6: printf("SAT");
  32. break;
  33. }
  34. printf("\n");
  35. }
  36. }
  37. int find_initial(int month) { //월 별 1일의 요일을 지정
  38. int initial_day; //1일의 요일, [0]:일요일 ~ [6]:토요일
  39. switch(month) {
  40. case 1: initial_day = 2; //ex. 1월 1일은 화요일[2]부터 시작
  41. break;
  42. case 2: initial_day = 5;
  43. break;
  44. case 3: initial_day = 5;
  45. break;
  46. case 4: initial_day = 1;
  47. break;
  48. case 5: initial_day = 3;
  49. break;
  50. case 6: initial_day = 6;
  51. break;
  52. case 7: initial_day = 1;
  53. break;
  54. case 8: initial_day = 4;
  55. break;
  56. case 9: initial_day = 0;
  57. break;
  58. case 10: initial_day = 2;
  59. break;
  60. case 11: initial_day = 5;
  61. break;
  62. case 12: initial_day = 0;
  63. break;
  64. }
  65. return(initial_day);
  66. }
Success #stdin #stdout 0s 9424KB
stdin
5 26
1 1
3 13
6 17
stdout
SUN
TUE
WED
MON