본문 바로가기
Algorithm/프로그래머스(Programmers)

[ 파이썬(python) ] 프로그래머스 level1 - 2016년

by YWTechIT 2021. 3. 31.
728x90

📌 2016년

00월 00일처럼 날짜가 주어졌을 때 무슨요일인지 맞추는 문제이다.
처음에 생각한 방법은 1일부터 31일까지 쭉 나열하고 7일이 되면 한바퀴를 다 돌기때문에 7로 나눈 나머지가 0, 1, ... 7이면 해당요일을 출력하는 방법을 떠올렸다.

전체적인 방법은 벗어나지 않았지만, if문을 사용하지 않고 그냥 요일[날짜]처럼 작성하면 코드도 간결해진다.

그리고 1월의 요일만 구하는게 아니라 1월 ~ 12월의 요일도 구해야하므로 months라는 변수를 선언해 1~12월의 요일들을 리스트에 선언했다. 구하려고 하는 달(month)은 그 전까지의 달(month)의 합과 일(day)을 더한 값에 %7을 해주면 해당 요일이 나온다.

def solution(a, b):
    months = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
    days = ['FRI', 'SAT', 'SUN', 'MON', 'TUE', 'WED', 'THU']

    return days[(sum(month[:a-1]) + b-1) % 7]
반응형

댓글