Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- scrapy
- effective python
- HelloWorld
- 알고리즘
- hadoop2
- Sort
- C언어
- hive
- 그래프이론
- python
- 파이썬
- NumPy
- 코딩더매트릭스
- collections
- 딥러닝
- graph
- RNN
- C
- LSTM
- yarn
- recursion
- GRU
- Java
- 하이브
- 주식분석
- 선형대수
- 텐서플로
- tensorflow
- 하둡2
- codingthematrix
Archives
- Today
- Total
EXCELSIOR
[Level2] 2016년 (getDayName) 본문
1. 문제
2016년 1월 1일은 금요일입니다. 2016년 A월 B일은 무슨 요일일까요?
두 수 A,B를 입력받아 A월 B일이 무슨 요일인지 출력하는 getDayName 함수를 완성하세요.
요일의 이름은 일요일부터 토요일까지 각각
SUN,MON,TUE,WED,THU,FRI,SAT
를 출력해주면 됩니다. 예를 들어 A=5, B=24가 입력된다면 5월 24일은 화요일이므로 TUE를 반환하면 됩니다.
2. 풀이
1) 내가 작성한 코드
datetime을 import하여 weekday() 함수를 사용하여 풀었다.
import datetime def getDayName(a,b): answer = ['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN'] num = datetime.date(2016,a,b).weekday() return answer[num] #아래 코드는 테스트를 위한 출력 코드입니다. print(getDayName(5,24))
2) 다른 풀이
2016년의 월별 일수를 나타내는 list를 만들고 7로 나눈 나머지의 결과값을 리턴하는 방법으로 해결하였다.
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] #아래 코드는 테스트를 위한 출력 코드입니다. print(getDayName(5,24))
3. 알아둘 것
1) datetime.date : 일반적인 날짜에 대한 클래스이며(Gregorian calendar 표시) 속성으로 year, month, day를 가진다.
2) date.weekday( ) : 월요일(0) 부터 일요일(6)까지 표시
3) date.isoweekday( ) : 월요일(1) 부터 일요일(7)까지 표시
'Python > 알고리즘_문제' 카테고리의 다른 글
[Level2] 괄호 확인하기 (0) | 2017.09.21 |
---|---|
[Level2] 행렬의 곱셈 (ProdcutMatrix) (0) | 2016.12.06 |
[Level 2] 최솟값 만들기 (getMinSum) (2) | 2016.11.15 |
[Level 1] 약수의 합 (sumDivisor) (0) | 2016.11.14 |
[Level1] 피보나치 수 (Fibonacci) (0) | 2016.11.11 |
Comments