<aside>
💬 lv0
, 정렬
뮤라는 위니브 직원들의 휴가를 입력하는 업무를 맡았습니다. 휴가는 '일-월-연', '월/일/연', '연.월.일' 등 다양한 형식으로 뮤라에게 전달되었습니다. 이 날짜들을 '연/월/일' 형식으로 변환한 후, 오름차순으로 정렬하는 코드를 작성해주세요.
입력 | 출력 |
---|---|
['20-01-2024', '12/15/2023', '2022.05.30'] | ['2022/05/30', '2023/12/15', '2024/01/20'] |
['03/25/2021', '2020.12.31', '15-04-2022'] | ['2020/12/31', '2021/03/25', '2022/04/15'] |
주어진 날짜를 '연/월/일' 형식으로 변환한 후 오름차순으로 정렬합니다. 예를 들어, '20-01-2024'는 '2024/01/20'로, '12/15/2023'는 '2023/12/15'로 변환됩니다. 이러한 변환을 적용하여 모든 날짜를 변환하고 정렬한 결과를 출력합니다.
</aside>
def solution(dates): **#1 함수 정의**
def convert_date(date): **#2 함수 정의**
**#3 날짜 분리**
if "-" in date:
day, month, year = date.split("-")
elif "/" in date:
month, day, year = date.split("/")
else:
year, month, day = date.split(".")
return year, month, day
converted_dates = [convert_date(date) for date in dates] **#4 형식 변환**
sorted_dates = sorted(converted_dates) **#5 정렬**
return ["/".join(date) for date in sorted_dates] **#6 결과 반환**
함수 정의
코드의 첫 부분에서 solution
이라는 함수를 정의합니다. 이 함수는 하나의 인자 dates
를 받습니다. dates
는 날짜 리스트입니다.
함수 정의
날짜 리스트의 각 원소를 인자로 받습니다.
날짜 분리
날짜 사이의 구분자를 기준으로 날짜를 분리하여 연, 월, 일 순서로 반환합니다. 요구사항에 맞춰 구현하기 위함입니다. split
메서드를 사용하였습니다.
형식 변환
dates
리스트의 각 요소(날짜)를 convert_date
함수에 전달하여 연/월/일 형식으로 변환합니다.
정렬
변환된 날짜를 오름차순으로 정렬합니다.
결과 반환
정렬된 날짜들을 /
를 포함한 연/월/일 형식으로 변환하여 반환합니다.
join() 메서드
기본 형태: 문자열.join(시퀀스 객체)
개념: 시퀀스 객체의 요소들을 하나의 문자열로 합쳐줍니다.
# join() 메서드 사용
colors = ['red', 'green', 'blue']
print(','.join(colors)) # 'red,green,blue'
from datetime import datetime **#1 모듈 정의**
def solution(data): **#2 함수 정의**
result = []
for i in data: **#3 날짜 형식 지정**
if '-' in i:
date_format = '%d-%m-%Y'
elif '/' in i:
date_format = '%m/%d/%Y'
else:
date_format = '%Y.%m.%d'
**#4 문자열 변환**
date = datetime.strptime(i, date_format)
result.append(date)
result.sort() **#5 정렬**
return [i.strftime('%Y/%m/%d') for i in result] **#6 결과 반환**
모듈 정의
날짜 조작을 위한 datetime
모듈을 정의합니다.
함수 정의
solution
이라는 함수를 정의합니다. 이 함수는 하나의 인자 data
를 받습니다. data
는 날짜 리스트입니다. 임시 데이터 저장소 역할을 위한 result
리스트를 선언합니다.