https://programmers.co.kr/learn/courses/30/lessons/12901?language=python3
월별 Days를 딕셔너리로 만들어서 문제해결.
날짜를 1~366(2016년이 윤년이라 366)까지의 숫자로 만들고 나머지를 구해서 해당날짜가 무슨요일인지 구한다.
아래는 테스트 통과한 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
Month_per_Days = {}
Month = [i for i in range(1,13)]
Days = [0,31,29,31,30,31,30,31,31,30,31,30]
for i, j in zip(Month, Days) :
Month_per_Days[i] = j
def solution(a, b):
answer = ''
sum_days = 4
for i in range(1,a+1) :
sum_days+= Month_per_Days[i]
sum_days = sum_days + b
if sum_days % 7 == 1 :
answer = "MON"
elif sum_days % 7 == 2 :
answer = "TUE"
elif sum_days % 7 == 3 :
answer = "WED"
elif sum_days % 7 == 4 :
answer = "THU"
elif sum_days % 7 == 5 :
answer = "FRI"
elif sum_days % 7 == 6 :
answer = "SAT"
elif sum_days % 7 == 0 :
answer = "SUN"
return answer
|
참고할만한 다른사람 코드(if, elif 구문을 리스트로 대체 했다)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
# 문제가 개편 되었습니다. 이로 인해 함수 구성이 변경되어, 과거의 코드는 동작하지 않을 수 있습니다.
# 새로운 함수 구성을 적용하려면 [코드 초기화] 버튼을 누르세요. 단, [코드 초기화] 버튼을 누르면 작성 중인 코드는 사라집니다.
def getDayName(a,b):
m_days = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
accum_days = []
k = 0
for i in range(12):
k += m_days[i]
days = accum_days[a-1] + b
wkday = days % 7
answer = ['THU', 'FRI', 'SAT', 'SUN', 'MON', 'TUE', 'WED'][wkday]
return answer
#아래 코드는 테스트를 위한 출력 코드입니다.
print(getDayName(5,24))
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
|
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none; color:white">cs |
[알고리즘 풀이] 프로그래머스 위장, Level2(해시) (0) | 2019.04.21 |
---|---|
[알고리즘 풀이] 프로그래머스 : 다리를 지나는 트럭, Level2(스택/큐) (0) | 2019.04.18 |
[알고리즘문제 풀이] 프로그래머스 : 서울에서 김서방 찾기, 연습문제 (0) | 2019.04.14 |
[알고리즘 풀이] 프로그래머스 : 타겟넘버, Level2(깊이/너비 우선 탐색) (0) | 2019.04.12 |
[알고리즘 풀이] 프로그래머스 : 가장 큰 수, Level2(정렬) (0) | 2019.04.12 |