[BOJ] 1924번: 2007년

오도원공육사·2021년 7월 5일
0

알고리즘

목록 보기
1/17

문제

https://www.acmicpc.net/problem/1924
1. 2007년 1월 1일이 월요일일 때,
2. 2007년 x월 y일은 무슨요일인가

알고리즘

  1. 365일 -> 완전탐색
  2. 1월 1일 -> x월 y일 날짜차이 : k
  3. k % 7 요일

소스코드

# 입력
x, y = map(int, input().split())

# 요일리스트
day = ["MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"]

# 날짜 계산
days = 0
for month in range(1, x):
    if month in {1, 3, 5, 7, 8, 10, 12}:
        days += 31
    elif month in {4, 6, 9, 11}:
        days += 30
    else:
        days += 28

days += y - 1

print(day[days % 7])

주의

month를 체크할 때 리스트가 아닌 집합을 사용한 이유

List에서 in연산이 O(n)인 반면, Set은 in연산이 O(1)이다.

출처. https://wiki.python.org/moin/TimeComplexity

profile
잘 먹고 잘살기

0개의 댓글