<aside>
💬 lv0
, 정렬
라이캣은 '캣네생선'의 대표로 바쁜 나날을 보내고 있습니다. 그에게는 매주 주간 일정이 요일별로 주어집니다. 각 요일(월요일부터 금요일까지)에는 여러 일정이 있으며, 각 일정은 'YYYY-MM-DD' 형식의 날짜로 주어집니다. 모든 요일의 일정 중에서 최근 3개의 일정을 찾아 'YY-MM-DD 요일' 형식으로 반환하는 코드를 작성해주세요.
입력 (일정) | 출력 (최근 3개 일정) |
---|---|
{'월': ['2024-01-01', '2024-01-08', '2024-01-15', '2024-01-22'], '화': ['2024-01-02', '2024-01-09', '2024-01-16'], '수': ['2024-01-03', '2024-01-10'], '목': ['2024-01-04', '2024-01-11', '2024-01-18'], '금': ['2024-01-05', '2024-01-12', '2024-01-19', '2024-01-26']} | ['24-01-26 금', '24-01-22 월', '24-01-19 금'] |
모든 요일의 일정 중 최근 3개의 일정을 찾아 'YY-MM-DD 요일' 형식으로 반환합니다. 예를 들어, 가장 최근의 일정은 '2024-01-26'의 금요일, 그 다음은 '2024-01-22'의 월요일, 그리고 '2024-01-19'의 금요일입니다.
</aside>
from datetime import datetime **#1 모듈 정의**
def solution(schedules): **#2 함수 정의**
**#3 리스트 변환 및 저장**
all_schedules = []
for day, dates in schedules.items():
for date in dates:
all_schedules.append((date, day))
all_schedules.sort(key=lambda x: x[0], reverse=True) **#4 정렬**
recent_three = all_schedules[:3] **#5 요구사항 반영**
**#6 요일 형식 변환**
return [
datetime.strptime(date, "%Y-%m-%d").strftime("%y-%m-%d") + " " + day
for date, day in recent_three
]
모듈 정의
날짜 조작을 위한 datetime
모듈을 정의합니다.
함수 정의
solution
이라는 함수를 정의합니다. 이 함수는 하나의 인자 schedules
를 받습니다. schedules
는 요일과 날짜 리스트로 이루어진 딕셔너리입니다.
리스트 변환 및 저장
모든 일정을 저장할 리스트를 선언합니다. 각 아이템에서 요일과 날짜 리스트를 뽑아냅니다. 뽑아낸 날짜 리스트에서 각 날짜를 (날짜, 요일) 형식의 튜플로 all_schedules
리스트에 저장합니다.
정렬
날짜를 기준으로 내림차순 정렬합니다.
요구사항 반영
최근 3개 일정을 뽑아 recent_three
변수에 저장합니다.
요일 형식 변환
선택된 일정을 'YY-MM-DD 요일' 형식으로 변환합니다. " "
는 날짜와 요일 사이의 공백을 의미합니다.
datetime
datetime.datetime
strftime
기본 형태: datetime.strftime
개념: datetime
객체를 문자열로 변환할 때 사용합니다. ****
# strftime 정의
datetime.strftime(format)
# format 형식 지시자
%Y: 네 자리의 연도 (예: 2024)
%m: 두 자리의 월 (예: 01)
%d: 두 자리의 일 (예: 23)
%H: 두 자리의 시간 (24시간 형식) (예: 14)
%M: 두 자리의 분 (예: 34)
%S: 두 자리의 초 (예: 56)