프로그래머스 1단계 - 오늘은 무슨요일??

파이톨치·2022년 1월 15일
2
post-thumbnail

문제 설명

1월 1일은 금요일이다. 특정 날짜에 무슨 요일인지 맞추는 프로그램을 만드세요. 올해는 윤년입니다.

어떻게 풀까

어떻게 푸는지 간단하게 생각해 보았습니다. 1주일은 7일로 이루어져있기 때문에 지난 날짜 나누기 7을 하고 그 나머지를 이용해서 연산을 진행해주면 됩니다. 우선 간단하게 리스트를 만들어주었습니다.
요일을 담을 수 있는 리스트와 월별 몇일 있는지를 담는 리스트 입니다.

week = ['FRI','SAT','SUN','MON','TUE','WED','THU']
months = [31, 29, 31, 30, 31, 30,31 , 31, 30, 31, 30, 31]

다음과 같이 만들어 줍니다.

이제 1월 1일로부터 몇일이 지났는지 세어주면 됩니다.

    d = 0
    a -= 1
    b -= 1

우선 다음과 같은 변수들을 만들어주었습니다. d는 총 몇일이 지났는지 담을 변수이고 a와 b는 월과 일을 담습니다. 1월 1일을 입력했을 때 연산이 진행되면 안되기 때문에 각각 -1을 해줍니다.
귀찮아서 변수명은 대충 지었습니다.

    for i in range(a):
        d += months[i]
    d += b
    d = d%7

연산도 간단 합니다. 4월이었으면 3월까지 몇일이 지났는지 세어주고 일도 추가해줍니다. 그러면 총 몇일이 지난지 알 수 있습니다. 이 수를 7로 나누어 주면 7 미만의 수가 나오게 됩니다. 이를 이용하여 날짜를 입력해주면 됩니다.

     	answer = week[d]

다음과 같이 리스트에 입력했던 요일을 이용해주는 것 입니다. 전체 코드를 보자면 다음과 같습니다.

def solution(a, b):
    week = ['FRI','SAT','SUN','MON','TUE','WED','THU']
    months = [31, 29, 31, 30, 31, 30,31 , 31, 30, 31, 30, 31]
    d = 0
    a -= 1
    b -= 1
    for i in range(a):
        d += months[i]
    d += b
    d = d%7
    
    answer = week[d]
    return answer

어려운 문제는 아니지만 도움이 됐길 바라며 글을 마치겠습니다 😀

profile
안알랴줌

0개의 댓글