코딩테스트 연습 - 2016년
2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까��
programmers.co.kr
2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN, MON, TUE, WED, THU, FRI, SAT 입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 TUE를 반환하세요.
2016년은 윤년입니다.
2016년 a월 b일은 실제로 있는 날입니다. (13월 26일 이나 2월 45일 같은 날짜는 주어지지 않습니다.)
a | b | result |
5 | 24 | "TUE" |
1
2
3
4
5
6
|
import datetime
def solution(a,b):
day = ["THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED"]
mon = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
return day[(sum(mon[:a-1])+b)%7]
|
cs |
5번째 줄 : 각 달의 전체 날짜만큼 배열로 저장한다.
6번째 줄 : mon배열의 (a-1)월까지 더한 수에 날짜인 b를 더하고 7로 나눈 인덱스에 해당하는 수 반환한다.
1
2
3
4
5
|
import datetime
def solution(a,b):
t = 'MON TUE WED THU FRI SAT SUN'.split()
return t[datetime.datetime(2016,a,b).weekday()]
|
cs |
5번째 줄 : datetime.datetime을 통해 해당 날짜를 datetime 형식으로 바꾼 후, weekday()를 사용하여 요일을 정수로 변환하여 반환했다(월요일 = 0, 일요일 = 6).
ex) date(2011,12,24).weekday() == 5
[프로그래머스/Level1/파이썬3] 문자열 내 p와 y의 개수 (0) | 2020.10.12 |
---|---|
[프로그래머스/Level1/파이썬3] 문자열 다루기 기본 (0) | 2020.10.09 |
[프로그래머스/Level1/파이썬3] 문자열 내림차순으로 배치하기 (0) | 2020.10.08 |
[프로그래머스/Level1/파이썬3] 두 개 뽑아서 더하기 (0) | 2020.10.07 |
[프로그래머스/Level1/파이썬3] 두 정수 사이의 합 (0) | 2020.10.07 |