[백준/Python] 1924번 : 2007년

문제

https://www.acmicpc.net/problem/1924

  • 구현 문제

풀이

  • input으로 들어오는 월, 일 값을 바탕으로 1월 1일부터 총 몇일이 지났는지를 월, 일로 나눠서 확인하고, 결과값을 7로 나눈 나머지를 인덱스로 활용하여 해당 날짜가 무슨 요일인지를 확인하는 식으로 풀이했다.

  • 1월 1일을 기준으로 x월 y일까지 총 며칠이 지났는지를 체크하기위해 day_cnt 변수를 활용했다. 초기값은 1일을 기준으로 y일까지 며칠이 지났는지를 할당해주었다.

  • mon 변수를 통해 1월부터 x월까지 며칠의 시간이 지났는지를 체크해준다. 이때 2월과 4,6,9,11월의 경우에는 31일이 아닌 알맞는 값을 cnt 변수에 더해주었다.

days = ["MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"]

# month , day
x, y = map(int, input().split())

zero = [4, 6, 9, 11]
mon = 1
# 1일부터 시작이니까 -1
# 5일이면, 4일 경과
day_cnt = y - 1
while mon < x:
    if mon == 2:
        day_cnt += 28
    elif mon in zero:
        day_cnt += 30
    else:
        day_cnt += 31
    mon += 1

print(days[day_cnt % 7])

후기

  • 계산 과정에서 실제 결과값이 하루씩 밀리는 문제가 발생했었다. 단순한 계산 실수였지만 이로 인해서 시간을 꽤 잡아먹었다.

  • 변수를 선언하거나 값을 이용할 때는 반드시 꼼꼼하게 해당 값이 정확한지를 확인한 뒤 사용하자.