본문 바로가기
🔅코딩테스트 공부🔅/❗프로그래머스(Lv.1)

[프로그래머스] Level1 2016(with python)

by 윤무무 2023. 1. 29.

https://school.programmers.co.kr/learn/courses/30/lessons/12901

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 내가 작성한 코드
cal = {1:'FRI',2:'SAT',3:'SUN', 4:'MON',5:'TUE',6:'WED',0:'THU'}

def solution(a, b):
    day = 0
    while (a-1) != 0:
        if (a-1)in[1,3,5,7,8,10,12]:
            day+= 31
        elif (a-1) in[4,6,9,11]:
            day+= 30
        else:
            day+=29
        a -= 1
    day += b
    return cal[day%7]

딕셔너리와 in 함수를 통해서 풀었다.

 

요일은 1월 1일부터 현재날짜까지 총 더한 날의 수를 7로 나눴을 때 나머지를 이용해서 구하면 된다.

 

2. 추가 코드
def getDayName(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(months[:a-1])+b-1)%7]

이건 다른 분의 코드인데 ㄹㅇ깔끔.. 당신도 갓...

 

댓글