알고리즘/입출력

[Python] 백준 1924 풀이

아뵹젼 2021. 1. 19.

 

소스코드

daylist = [31,28,31,30,31,30,31,31,30,31,30,31]
weeklist = ["SUN","MON","TUE","WED","THU","FRI","SAT"]
x, y = map(int,input().split())
count = 0
for i in range(x-1):
    count += daylist[i]
count += y
count %= 7
print(weeklist[count])

 

daylist 에는 12달의 각 날짜 수를 저장해두었다.

weelist 에는 1월 1일이 월요일, 즉 7%1 이 1이기 때문에 1번째 인덱스에 MON 이 위치하도록 SUN,MON,...SAT 을 저장하였다.

x , y 에 각각 월 일 을 입력받았다. 공백을 구분으로 입력받고 입력받은 값을 map 을 통해 int 형으로 형 변환 해주었다.

count 는 입력받은 날짜가 1월1일을 시작으로 몇 일이 지났는지 세기 위한 변수이다.

예로 3월 14일을 입력받았다고 하자. 1월에는 31일, 2월에는 28일 이므로 for 문은 2번 반복하면서(x-1번) 안에서 count 는 59가 되었다. 

for문을 탈출하고 count 에 3월의 값, 즉 y(14)를 더해주므로 count 는 73이 되었다.

count를 7로 나눈 나머지 값은 3이다. 즉, weelist[3] 은 WED이므로 3월 14일은 수요일이다.

만약 1월1일이 월요일이 아닌 수요일이였다면, weelist = ["TUE","WED","THU","FRI","SAT","SUN","MON"] 가 되었을 것이다. 왜냐면 1번 인덱스가 수요일이 되어야 하기 때문이다.

 

 

'알고리즘 > 입출력' 카테고리의 다른 글

[Python] 백준 10818 풀이  (0) 2021.01.19
[Python] 백준 8393 풀이  (0) 2021.01.19
[Python] 백준 2739 풀이  (0) 2021.01.19
[Python] 백준 2742 풀이  (0) 2021.01.19
[Python] 백준 2741 풀이  (0) 2021.01.19

댓글