구현, 수학
[백준] 1924. 2007년 풀이
hch06
2025. 2. 2. 20:18
https://www.acmicpc.net/problem/1924
각 월별 일수를 dayMax에 저장해둔 후 반복문을 통해 일수(day)를 증가해 나간다.
이 과정에서 결과값인 res 변수에도 1씩 더해주는데, 일주일은 7일이므로 반복적으로 7로 나눈 나머지 값을 저장해준다.
만약 일수가 해당 달의 마지막 일수를 넘긴다면 month변수에 1을 더하고 day를 0으로 초기화한다. 결과적으로 나온 결과값에 따라 요일을 출력시킨다.
(결과가 0이면 월요일, 1이면 화요일, 2이면 수요일 ... 6이면 일요일이다)
C
더보기
더보기
#include <stdio.h>
int main(){
int x, y; scanf("%d %d", &x, &y);
int month = 1, day = 0, res = -1;
int dayMax[12]
= {31, 28, 31, 30, 31,30,
31, 31, 30, 31, 30, 31};
while(1){
day++;
res++; res %= 7;
if(month == x && day == y) break;
if(dayMax[month - 1] == day) {month++;day = 0;}
}
switch(res){
case 0:
printf("MON"); break;
case 1:
printf("TUE"); break;
case 2:
printf("WED"); break;
case 3:
printf("THU"); break;
case 4:
printf("FRI"); break;
case 5:
printf("SAT"); break;
case 6:
printf("SUN"); break;
}
}
Python
더보기
더보기
x, y = map(int, input().split())
month = 1; day = 0; res = -1
dayMax = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
while 1:
day += 1; res += 1; res %= 7
if month == x and day == y: break
if dayMax[month - 1] == day: month += 1; day = 0
if res == 0: print('MON')
elif res == 1: print('TUE')
elif res == 2: print('WED')
elif res == 3: print('THU')
elif res == 4: print('FRI')
elif res == 5: print('SAT')
else: print('SUN')