반응형
이번엔 쉬운 문제를 가져와 봤다.
프로그래머스 2016년을 Python으로 풀어보겠다.
다른 언어 풀이를 보고 싶다면 아래 링크를 확인해보자
2022.08.20 - [Coding Test/C++] - [프로그래머스] 2016년 C++ Code
2022.08.20 - [Coding Test/JavaScript] - [프로그래머스] 2016년 JavaScript Code
2022.08.20 - [Coding Test/Go] - [프로그래머스] 2016년 Go Code
문제
구현
구현은 2016년 안에서만 계산해야 해서
모든 월의 일 수와
요일들을 리스트에 넣고
결과값을 계산했다.
코드로 보겠다.
코드
def solution(a, b):
days = ["FRI","SAT","SUN","MON","TUE","WED","THU"]
month = [31,29,31,30,31,30,31,31,30,31,30,31]
m = a-1
d = sum(month[:m])+(b-1)
return days[d%7]
a-1로 month를 계산하게 했고
month를 sum 해서 추가하고 일을 추가해서 계산할 수 있게 했다.
mod(%) 연산과 맞게 하기 위해
금요일부터 리스트에 넣었다.
다른 풀이
사실 별다른 로직이 필요한 문제가 아니어서 다른 풀이가 없지만
출제자의 의도를 회피하기 위해 datetime 패키지를 가져온 분이 있었다 ㅋㅋㅋ
from datetime import date
DAY = {0: 'MON', 1: 'TUE', 2: 'WED', 3: 'THU', 4: 'FRI', 5: 'SAT', 6: 'SUN'}
def getDayName(a,b):
d = date(2016, a, b)
return DAY[d.weekday()]
해당 패키지에서는 date.weekday()를 쓰면 요일을 반환해준다
실무에서는 이 패키지를 많이쓰긴 하는데
이 문제에서 출제자는 이렇게 풀길 원하지 않았을 것 같지만
여러 연도가 있다면 훨씬 괜찮은 방법이다 ㅎㅎ
반응형
'Coding Test > Python' 카테고리의 다른 글
[프로그래머스] 최소 직사각형 Python Code (0) | 2022.08.27 |
---|---|
[프로그래머스] 나머지가 1이 되는 수 찾기 Python Code (0) | 2022.08.23 |
[프로그래머스] 성격 유형 검사하기 Python Code (0) | 2022.08.19 |
[프로그래머스] 약수의 개수와 덧셈 Python Code (0) | 2022.08.17 |
[프로그래머스] K번째수 Python Code (0) | 2022.08.16 |
댓글